我的應用程序出現問題。 我有一個名爲PetActivity的活動。在這個活動中有一些值...和一個按鈕(更新)。這個按鈕會將用戶切換到另一個名爲UpdateActivity的活動,他可以在其中編輯來自PetActivity的值。有一個保存按鈕應該完成這個活動並重新打開PetActivity。我有錯誤在這個動作......(空指針異常)在完成另一個活動時更新活動
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.project/com.example.project.PetActivity}: java.lang.NullPointerException
PetActivity的onclick代碼:
if (v.getId() == R.id.button1updateAP) {
Intent i = new Intent(PetActivity.this, UpdateActivity.class);
Bundle ext = getIntent().getExtras();
String idOfPet = ext.getString(IDR);
i.putExtra(UpdateActivity.ID, idOfPet);
startActivity(i);
finish();
}
UpdateActivity的onclick代碼:
if (v.getId() == R.id.button1saveAU) {
MyDatabaseHelper db = new MyDatabaseHelper(this);
Pet petU = new Pet();
petU.setID(id);
petU.setName(TVname.getText().toString());
petU.setAge((ETage.getText().toString()));
petU.setWeight(ETweight.getText().toString());
db.updatePet(petU);
db.close();
DatabaseWeight dbw = new DatabaseWeight(this);
dbw.addPetWeight(new Pet(petU.getID(), petU.getWeight()));
Intent i2 = new Intent(this, PetActivity.class);
startActivity(i2);
finish();
}
當我嘗試這樣做,沒關係:
Intent i2 = new Intent(this, ListActiv.class);
startActivity(i2);
finish();
這段代碼已將我切換到List,並且我可以去刷新PetActivity,但我必須直接進入PetActivity。
我會爲任何建議非常感謝。
謝謝!
你爲什麼不使用startActivityForResult()在PetActivity的onClickmethod。並且不要在A中調用finish() –
,不要完成,在B中不要啓動。在A中,startActivityForResult,在B中,使用setResult。在A,更新根據onActivityResult – njzk2