2014-09-03 153 views
0

我正在製作購物清單應用程序。Android:將數據從一個活動傳遞到ListView中的另一個活動

在我的第一個Activity我有一個ListView,在我的第二個活動中,我可以添加新的雜貨店的詳細信息。我想在第一個ActivityListView中顯示這​​些詳細信息。現在我怎樣才能將數據從第二個Activity傳遞到第一個ActivityListView

在第二個活動我通過與嘴硬代碼數據:

  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(); 

而且在第一個活動,我用的是意向如下:

  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 
      } 
     } 

請幫我解決這個問題。提前致謝。

+0

發表了一些代碼。 – 2014-09-03 04:08:05

+0

從您的詳細信息視圖活動的手段傳遞數據到第一個活動listview? – Piyush 2014-09-03 04:40:57

+0

你在哪裏保存雜貨的細節? Sqlite或Web服務? – 2014-09-03 05:33:10

回答

0

我建議你使用SQLite解決你的問題,當你插入新的雜貨店信息時,只需創建一張表並在數據庫表中插入這些詳細信息即可。現在,當您想要顯示新添加的細節時,只需運行「select」查詢並設置您的ListView適配器即可。

如果每次你不想設置你的適配器,那麼只需要維護一個布爾型靜態變量,如isGroceryAdded。如果雜貨店的詳細信息成功添加,那麼在那個時候將該布爾變量設置爲「true」。然後檢查你的第一個活動是否爲真,然後再次運行查詢並在設置適配器後再次設置適配器,然後再次將該變量設置爲false。

0

沒有一些代碼,我的建議是創建一個實現可序列化的模型類,並將其作爲結果傳遞給第一個Activity(注意,爲此,第二個活動必須以startActivityForResult()開始)。

對於類似的問題,請看看https://stackoverflow.com/a/14333555/1082942

0

這是一個解決方案,在大多數情況下工作的總體概述。考慮到你沒有提供特定於你的情況的代碼,這可能或可能不是你所需要的。

1)要恢復第一個活動,請將第二個活動的意向發送到第一個包含意向附加項(鍵值對)的雜貨詳情的活動。

2)覆蓋第一個活動的onResume()方法來處理傳入的意圖以提取所需的數據。

3)然後,您需要更新適配器所使用的數據,並附加此意向附加信息。

4)然後,你需要你的適配器上調用notifyDataSetChanged(),所以它會重建自己的看法與更新的信息

希望對您有所幫助。

相關問題