为了账号安全,请及时绑定邮箱和手机立即绑定

Hashmap 访问和范围我总是在方法内部得到 null

Hashmap 访问和范围我总是在方法内部得到 null

largeQ 2021-10-06 12:36:08
我正在尝试在 hashmap 中添加一些数据,我将 hashmap 声明为类字段,但正在将数据添加到 itcinside 几种方法和最终方法中,当我尝试获取数据时,我得到 null 或为空,就好像数据不存在一样这里的 hashmap 是我在做什么的示例代码Public myclass extens fragment {Private Map<String, String> data = new hashmap<String,String>() ;@overridePublic onViewCreated() {//some codeReturn view;}Public view stepOne() {EditText text = findviewbyid(id) ;String text1 = text. getText().toString();data.put("data1",text1);Return text;}Public view stepTwo({EditText text2 = findviewbyid(id) ;String text3 = text. getText().toString();data.put("data2",text3);Return text2;}Public view stepFinal() {String firstStepData = data.get("data1");String firstStepData = data.get("data2");}}stepFinal() 中的变量是空的,为什么以及如何解决这个问题?
查看完整描述

3 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

我想将数据存储到其中以通过 android 垂直步进器中的步骤传递哈希图的目的

我最终使用signleton模型将数据存储到它并再次调用它


查看完整回答
反对 回复 2021-10-06
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

声明变量时,请使用 HashMap 而不是 Map。然后,在此链接中更好地检查 hashmap 的工作方式。


快速解释:


Hashmap 使用键值对进行工作,因此,如果您以这种方式声明 hashmap:


private HashMap<String,String>

你是说你的 hashmap 有 String 作为键,另一个 String 作为值。如果你想得到一些值,你应该使用关联的键:


data.put("myKey","myValue")

data.get("myKey")

在您的情况下,您只能获得分配给“data1”键的最后一个值,因为您在“stepTwo”中覆盖了该键。


因此,在第二步中,您应该使用另一个键,例如:


data.put("data3","text3");

在最后一步:


data.get("data1");

data.get(""data3");


查看完整回答
反对 回复 2021-10-06
  • 3 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信