【发布时间】:2011-08-05 10:57:21
【问题描述】:
我是一名学生,刚接触编程。这可能是一个简单的错误,谁能帮我修复它。我必须将一个数组列表从一个活动传递到另一个活动。在这个活动中,我有 5 个单选按钮 RB1、RB2.... 我想将 news[] 的内容传递给另一个名为 display 的活动。
public void onClick(View v) {
String[] news;
news = new String[5];
news[0] = "bbc";
news[1] = "guardian";
news[2] = "yahoo";
news[3] = "sky";
news[4] = "fox news";
final ArrayList<String> arr = new ArrayList<String>();
if (RB1.isChecked() == true)
arr.add(news[0]);
if (RB2.isChecked() == true)
arr.add(news[1]);
if (RB3.isChecked() == true)
arr.add(news[2]);
if (RB4.isChecked() == true)
arr.add(news[3]);
if (RB5.isChecked() == true)
arr.add(news[4]);
if (v == Done)
{
Button done = (Button) findViewById(R.id.DONE);
done.setOnClickListener(new View.OnClickListener() {
public void onClick(View view)
{
Intent myIntent = new Intent(Read.this, display.class);
myIntent.putExtra("pass",arr);
startActivity(myIntent);
}
});
}
下一个活动的代码如下
Intent myintent = getIntent();
String[] Array = myintent.getStringArrayExtra("pass");
for (int i = 0; i < Array.length; i++)
Log.v(LOG_TAG, "THE website Is :" +Array[i]);
我在上面两行中得到一个 java.lang.NullPointerException,即
for (int i = 0; i < Array.length; i++)
Log.v(LOG_TAG, "THE website Is :" +Array[i]);
你能告诉我为什么吗? 提前致谢
【问题讨论】:
-
看看这个链接可能会有所帮助...stackoverflow.com/questions/6355787/…
-
对于您的 NullPointerException 问题,
Array变量可能为 null,如果您没有从上一个活动中正确传递它,就会发生这种情况。在String[] Array = ...之后使用日志语句仔细检查这一点,例如Log.v(LOG_TAG, "Array is null? " + (Array[i] == null));。 -
哦!您不能将
ArrayList<String>传递给myIntent.putExtra()。您需要先将ArrayList转换为String[]。试试putExtra((String[])arr.toArray());