0

在活动 A 中,我构建了一个 Question 数组 q1 并传递给活动 B:

Intent i = new Intent(getApplicationContext(), B.class);
i.putExtra("questions", q1);
startActivity(i);
finish();

在活动 B 中:

Object c= getIntent().getExtras().getSerializable("questions");

现在,如何在一系列问题中重新转换“c”?我不能做演员(问题[])

4

4 回答 4

2

这会很有帮助。

 Question[] questions = (Question)context.getIntent().getExtras().get(key)
于 2013-07-31T10:36:30.867 回答
0

在您的第一个活动中,您可以在包中发送数组,然后在下一个根据意图创建的活动中,您可以从包中提取数组列表。

        Bundle b=new Bundle();
        b.putStringArrayList("option", optionMod);
        Intent i = new Intent(getApplicationContext(), ad45.hw.hwapp.confirmation.class);
        i.putExtras(b);
        startActivity(i); 

然后,当您想读取新活动中的内容时,创建一个新数组 List 来存储与意图一起发送的数组并从包中提取数组:

    public void getInfo(){
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
       options = extras.getStringArrayList("option"); 
     }
    }
于 2013-07-31T10:51:14.023 回答
0

您的对象需要实现Parcelable接口。

在您的 Question 类中必须实现parcelable接口。看下面的代码,

Question[] questions = //assign value;
Parcelable[] output = new Parcelable[questions.length];
for (int i=questions.length-1; i>=0; --i) {
    output[i] = questions[i];
}

Intent i = new Intent(...);
i.putExtra("QuestionArray", output);

//从意图中检索它

Question[] questions = (Question[])intent.getParcelableArrayExtra("QuestionArray");
于 2013-07-31T10:49:20.987 回答
0

您的 Question 对象必须实现 Parcelable 接口。您只能放置原始对象或实现 Parcelable 的对象。

于 2016-02-18T20:01:19.257 回答