当我将对象发送到主要活动时,我的应用程序总是崩溃。我想要它,所以主要的活动显示我的班级的一个字符串,但每次我按下第二个活动中的行,然后回到主要活动,应用程序崩溃可以有人帮我解决这个问题,谢谢。
我的课程
public class Ship implements Serializable {
public String test()
{
String s = "Hello Android!";
return s;
}
}
第二项活动
hangarList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
Intent sendListEvents = new Intent();
if(position == 1)
{
Ship test = new Ship();
sendListEvents.putExtra("ship1", test);
}
//insert position events ^^^
setResult(RESULT_OK, sendListEvents);
}
});
以下主要活动
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == result) {
if (resultCode == RESULT_OK) {
Intent getData = getIntent();
Ship ship1 = (Ship) getData.getSerializableExtra("ship1");
String s = ship1.test();
test.setText(s);
}
}
}
答案 0 :(得分:0)
尝试替换它:
Intent getData = getIntent();
Ship ship1 = (Ship) getData.getSerializableExtra("Ship1");
有了这个:
Ship ship1 = (Ship) data.getSerializableExtra("ship1");
另外,我建议制作&#34; ship1&#34;最终的静态常量值,以避免在尝试引用时出现拼写错误。如果您需要知道列表中被单击的位置,您可以将其作为另一个额外的意图传递。