我有一个空对象引用,但对象存在。
我的模型
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPlayerName() {
return playerName;
}
public void setPlayerName(String playerName) {
this.playerName = playerName;
}
public String getPlayerBirthday() {
return playerBirthday;
}
public void setPlayerBirthday(String playerBirthday) {
this.playerBirthday = playerBirthday;
}
public String getPlayerClub() {
return playerClub;
}
public void setPlayerClub(String playerClub) {
this.playerClub = playerClub;
}
public PlayerModel(int id, String playerName, String playerBirthday, String playerClub){
this.id = id;
this.playerName = playerName;
this.playerBirthday = playerBirthday;
this.playerClub = playerClub;
}
public PlayerModel(String playerName, String playerBirthday, String playerClub) {
this.playerName = playerName;
this.playerBirthday = playerBirthday;
this.playerClub = playerClub;
}
在我的玩家列表活动中
lvPlayerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
PlayerModel playerModel=arrayList.get(position);
Intent intent = new Intent(PlayerList.this, MainActivity.class);
intent.putExtra("PLAYER",playerModel);
startActivity(intent);
}
});
在我的主要活动中
PlayerModel playerModel=(PlayerModel) getIntent().getExtras().getSerializable("PLAYER");
tvMainPN.setText(playerModel.getPlayerName());
tvMainPB.setText(playerModel.getPlayerBirthday());
tvMainPC.setText(playerModel.getPlayerClub());
Logcat错误
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.Serializable android.os.Bundle.getSerializable(java.lang.String)' on a null object reference
我尝试了不同的解决方案来显示来自 sqlite 的数据,但没有任何效果。直接从数据库、意图、可分割的数据获取数据总是出现相同的错误。 我忘记了什么? 我想我必须初始化一些东西,但是什么以及在哪里?
有人有主意吗? 谢啦
如果您从 PlayerList 活动中
start
MainActivity(该活动是从 MainActivity 启动的),则 MainActivity 的原始实例将被销毁,以允许启动 MainActivity 的实例,然后将启动 MainActivity 的新实例。
您需要
finish
PlayerList 活动(假设它是从 MainActivity 启动的),以允许将控制权交还给调用/原始 MainActivity。
如果您需要将结果返回到 MainActivity 那么您应该编码并使用
startActivityForResult
请参阅 https://developer.android.com/training/basics/intents/result