使用getStringArray时的java.lang.NullPointerException
我正在开发一个可以生成宝藏清单的应用程序 这是要将列表存储到的字符串数组:使用getStringArray时的java.lang.NullPointerException,java,android,Java,Android,我正在开发一个可以生成宝藏清单的应用程序 这是要将列表存储到的字符串数组: String treasure[] = {"", "", "", "", "", "", "", "", "", "", "", "", "", "", ""} ; 这就是我填充值的方式 treasure[0] = coinvalue + " copper pieces"; 在这里,我将编译后的列表发送到下一部分: Bundle treasurelist = new Bundle();
String treasure[] = {"", "", "", "", "", "", "", "", "", "",
"", "", "", "", ""} ;
这就是我填充值的方式
treasure[0] = coinvalue + " copper pieces";
在这里,我将编译后的列表发送到下一部分:
Bundle treasurelist = new Bundle();
treasurelist.putStringArray("loot", treasure);
Intent a = new Intent(TreasureGen.this, Treasure_Results.class);
a.putExtras(treasurelist);
startActivity(a);
这就是我在下一阶段中选择列表的地方:
public class Treasure_Results extends ListActivity {
String getTreasure[] ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle gettreasurelist = getIntent().getExtras();
getTreasure = gettreasurelist.getStringArray("loot");
setListAdapter(new ArrayAdapter<String>(Treasure_Results.this, android.R.layout.simple_list_item_1, getTreasure));
}
}
当我点击链接时,它会将我发送到这行代码
getTreasure = gettreasurelist.getStringArray("loot");
由于这只是我尝试用Java编写代码的第二天,我不知道该怎么做。。。我浏览了论坛,试图找到解决方案,也有一些类似的问题,但我无法从这些答案中找到我的问题
更新
我试过下面的建议。。。以下是适用于此函数的“司库Gen”活动代码
roll.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
treasurecr = counter;
int d100;
int coinvalue;
String treasure[] = {"", "", "", "", "", "", "", "", "", "",
"", "", "", "", ""} ;
Bundle treasurelist = new Bundle();
treasurelist.putStringArray("loot", treasure);
Intent a = new Intent(TreasureGen.this, Treasure_Results.class);
a.putExtras(treasurelist);
startActivity(a);
Intent openStartPoint = new Intent("com.giraffelitis.ptindustries.TREASUREGEN2");
startActivity(openStartPoint);
}
});
这是我的整个宝藏活动
public class Treasure_Results extends ListActivity {
String getTreasure[] ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle treasurelist = getIntent().getExtras();
getTreasure = treasurelist.getStringArray("loot");
System.out.println("getTreasure = " + getTreasure);
setListAdapter(new ArrayAdapter<String>(Treasure_Results.this, android.R.layout.simple_list_item_1, getTreasure));
}
//@Override
//public void onListItemClick(ListView l, View v, int position, long id) {
// do something with the data
//}
}
谢谢你的时间 如果要在两个活动之间传输数组字符串,可以在初始活动中使用以下代码:
Intent intent = new Intent();
in.putExtra("loot", treasure);
同时,在要处理阵列的活动中:
Intent intent = getIntent();
String treasure[] = intent.getStringArrayExtra("loot");
所以gettreasurelist在这里可能是空的。我会检查getIntent.getExtras是否返回null并从那里开始。是的,在那里放置一个断点并检查它。还要检查在第一个活动中,treasurelist或treasure是否为null。断点取决于IDE。您还可以使用一个简单的if语句。if gettreasurelist==null{System.out.printlngtl为null;}我尝试了一下,它得到了null,与上面发布的代码相同。它将结果显示为null,上面发布的代码在arraycan中给出了奇怪的lang字符串结果,您可以在某个地方使用我们的项目吗?
Intent intent = new Intent();
in.putExtra("loot", treasure);
Intent intent = getIntent();
String treasure[] = intent.getStringArrayExtra("loot");