我是一名学生,也是编程新手。这可能是一个简单的错误,任何人都可以帮我解决它。我必须将数组列表从一个活动传递到另一个活动。在这个活动中我有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]);
你可以告诉我为什么吗?
提前谢谢
答案 0 :(得分:2)
首先,一些约定:将变量的名称设置为小写,因此array
而不是Array
。这样可以避免以后的混乱。
从this主题:
尝试如下Bundle b=new Bundle();
b.putStringArray(key, new String[]{value1, value2});
Intent i=new Intent(context, Class);
i.putExtras(b);
和
Bundle b=this.getIntent().getExtras();
String[] array=b.getStringArray(key);
答案 1 :(得分:1)
像这样使用Bundle:
Bundle bundle = new Bundle();
bundle.putStringArray(key, news);
myIntent.putExtra("pass",bundle);
startActivity(myIntent);