我完全沉浸在解決我的問題。我嘗試了所有可能的方式來完成它,但徒勞無功。請,任何人都看看下面的代碼,並幫助我... 我是新來android/java環境。android intent傳遞null值
我有活動A從哪裏我觸發活動B的結果。活動B是用戶必須填寫的表格,並且必須通過按下表格上的「保存按鈕」來提交。表單中的數據存儲在數據庫中(工作正常),並且活動B以字符串(由用戶提供)返回到活動A
當它返回到活動A時,應該使用列表視圖用該字符串的值更新。
這裏是我的代碼:
從A開始的意圖:
Intent ccard_intent= new Intent(this, create_ccard.class);
startActivityForResult(ccard_intent,start_activity_for_ccard);
break;
上面的代碼工作正常。活動B開始(其具有要由用戶填寫的表格)
在活動B中,在用戶填寫表格後,他按下保存按鈕。 條目存儲在Db中,並提示用戶輸入該特定條目的名稱。我已經使用了alertdialog。現在注意的是,在DATABSE中的條目具有在alertdialog,現在我想相同的字符串傳遞到活動A的用戶提供的名稱(字符串):
點擊保存按鈕後我的代碼:
case R.id.Ccard_save_btn:
//do operations
CcardString =myobj.toString();
AlertDialog.Builder save_btn_builder = new AlertDialog.Builder(this);
save_btn_builder.setTitle("Enter the Card Name");
final EditText input= new EditText(this);
save_btn_builder.setView(input);
save_btn_builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Card_name=input.getText().toString();
myDatabse mydb = new myDatabse(getBaseContext());
mydb.open();
mydb.insertCard(Card_name, type, CcardString);
mydb.close();
//i have intent declared at the begining along with along with Card_name
i.putExtra("card_name", Card_name);
setResult(Activity.RESULT_OK);
finish();
}
});
save_btn_builder.show();
現在,意圖成功返回到活動A,但在「card_name」中具有空值! 我不知道爲什麼?
現在我的onActivityResult代碼:
protected void onActvityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
Log.d("activity ccards", "in on activity resume");
if(requestCode == 788 && resultCode== RESULT_OK){
new_ccard = data.getStringExtra("card_name");
ccards_arraylist.add(new_ccard);
adapter3.notifyDataSetChanged();
//adapter3 is the adapter for the listview
}
}
首先檢查存儲在意圖第一 – 2013-03-03 11:51:20
我應該怎麼做? – user2056245 2013-03-03 11:52:16
我在Activity中使用Toasts進行了檢查,它返回null! – user2056245 2013-03-03 11:52:44