猿问

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

我正在尝试在 hashmap 中添加一些数据,我将 hashmap 声明为类字段,但正在将数据添加到 itcinside 几种方法和最终方法中,当我尝试获取数据时,我得到 null 或为空,就好像数据不存在一样这里的 hashmap 是我在做什么的示例代码


Public myclass extens fragment {

Private Map<String, String> data = new 

hashmap<String,String>() ;


@override

Public onViewCreated() {

//some code

Return 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() 中的变量是空的,为什么以及如何解决这个问题?


largeQ
浏览 171回答 3
3回答

慕村225694

我想将数据存储到其中以通过 android 垂直步进器中的步骤传递哈希图的目的我最终使用signleton模型将数据存储到它并再次调用它

慕桂英546537

声明变量时,请使用 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");
随时随地看视频慕课网APP

相关分类

Java
我要回答