[英]Passing firebase data from one activity to another via clickable ListView
[英]Android: Passing data from one activity to another activity in ListView
我正在制作雜貨清單應用程序。
在我的第一個Activity
我有一個ListView
,在我的第二個活動中,我可以添加新的雜貨店詳細信息。 我想在第一個Activity
的ListView
顯示這些詳細信息。 現在如何將數據從第二個Activity
傳遞到ListView
的第一個Activity
。
在第二個活動中,我使用愚弄的代碼傳遞了數據:
EditText editName = (EditText) findViewById(R.id.txtName);
EditText editQty=(EditText) findViewById(R.id.txtqty);
String name= editName.getText().toString();
String quantity=editQty.getText().toString();
Intent returnIntent = new Intent();
returnIntent.putExtra("name",name);
returnIntent.putExtra("quantity",quantity);
setResult(RESULT_OK,returnIntent);
finish();
在第一個活動中,我使用了以下Intent:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == RESULT_OK){
Bundle b = data.getExtras();
if ( b!= null ){
String strName=data.getStringExtra("name");
String strQty=data.getStringExtra("quantity");
System.out.println(strName);
System.out.println(strQty);
}
}
if (resultCode == RESULT_CANCELED) {
//Write your code if there's no result
}
}
請幫我解決這個問題。 提前致謝。
我建議您使用SQLite來解決問題,當您插入新的雜貨店詳細信息時,只需創建一個表並將該詳細信息插入數據庫表即可。 現在,當您要顯示新添加的詳細信息時,只需運行“選擇”查詢並設置ListView適配器。
如果每次都不希望設置適配器,則只需維護一個布爾靜態變量,例如isGroceryAdded。 如果成功添加了雜貨店詳細信息,則在那時將該布爾變量設為“ true”。 並在第一個活動中檢查該變量為true,然后再次運行查詢並再次設置適配器,在設置適配器之后,只需再次將該變量設置為false。
沒有任何代碼,我的建議是創建一個實現可序列化的模型類,將其放入意圖中,然后將其傳遞回第一個Activity(請注意,要使其正常工作,第二個活動必須以startActivityForResult開始())。
對於類似的問題,請查看https://stackoverflow.com/a/14333555/1082942
這是在大多數情況下都應使用的一種解決方案的概述。 考慮到您沒有提供特定於您情況的代碼,這可能是您可能需要的,也可能不是。
1)要恢復第一個活動,請從第二個活動向包含雜貨店詳細信息的第一個活動發送一個意圖,作為意圖附加(鍵值對)。
2)覆蓋第一個活動的onResume()方法,以處理傳入的意圖,以提取所需的數據。
3)然后,您需要使用此附加信息來更新適配器使用的數據。
4)然后您需要在適配器上調用notifyDataSetChanged(),以便它將使用更新的信息重新創建其視圖。
希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.