Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用getStringArray时的java.lang.NullPointerException_Java_Android - Fatal编程技术网

使用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");