我尝试将Part对象从一个活动发送到另一个活动。但是我仍然得到空指针异常。这是我发送它的方式:
Intent intent = new Intent(this,InvActivity.class);
intent.putExtra("Part",part);
startActivity(intent);
这就是我尝试接收它的方式:
@Override
protected void onRestart() {
super.onRestart();
Log.e(TAG, "onRestart: ");
if(getIntent().getExtras().getSerializable("Part") != null) {
Part part = (Part) getIntent().getSerializableExtra("Part");
Log.e(TAG, "onRestart: "+ part.getName() );
}
}
然而它不起作用。我做错了什么?
答案 0 :(得分:2)
getIntent().getExtras()
返回Bundle
,您正在intent
Bundle
直接Serializable
Intent
Intent
给if(getIntent().getSerializable("Part") != null) {
Part part = (Part) getIntent().getSerializableExtra("Part");
Log.e(TAG, "onRestart: "+ part.getName() );
}
直接来自 android:windowSoftInputMode="adjustPan"
。像这样:
android:windowSoftInputMode="adjustResize"
答案 1 :(得分:1)
使用下面我使用Serializable
进行投射的代码Intent intent = new Intent(this,InvActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("Part", (Serializable) part);
intent.putExtras(bundle);
startActivity(intent);
Part part;
part = (Part) getIntent().getExtras().getSerializable("Part");
public class Part implements Serializable{
}
答案 2 :(得分:1)
if(getIntent().getExtras().getSerializable("Part") != null) {
Part part = (Part) getIntent().getExtras().getSerializable("Part");
Log.e(TAG, "onRestart: "+ part.getName() );
}
应该那样工作。
Ps:你不应该在onRestart上使用它。如果你开始等待结果的活动,这可能是最好的。