2016-07-06 39 views
0

如何將數據發送到另一個沒有的活動startActivityForResult發送數據到沒有startActivityForResult的活動

I OverrideonActivityResult方法爲了一旦結果從另一個Activity返回就執行邏輯。具體來說,從我EditItemActivity

過程:

在我的MainActivity

enter image description here

當我在ListView點擊一個項目,我重定向到另一個活動稱爲ToDoDetailActivity

enter image description here

當我點擊Edit按鈕我重定向到另一個活動稱爲EditItemActivity"

enter image description here

只要我做我的變化並按下EditItemActivityEdit按鈕,我返回到MainActivity

data = new Intent(EditItemActivity.this, MainActivity.class); 
data.putExtra(EDITTEXT_VALUE, etValue); 
setResult(123, data); 
startActivity(data); 

在我的MainActivity中,我想用我的onActivityResult方法中的這個邏輯更新我剛剛編輯的項目。不過,我沒有看到LogCat意義的任何日誌,我不相信正在使用這種方法,因此進行

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (data == null) { 
      return; 
     } 
     if (resultCode == 123) { 
      String editedItemValue = data.getStringExtra(EditItemActivity.EDITTEXT_VALUE);  
      todoItems.remove(editedPosition); 
      aToDoAdapter.insert(editedItemValue, editedPosition); 
      aToDoAdapter.notifyDataSetChanged(); 
     } 
    } 

回答

1

沒有道理在你的代碼:

data = new Intent(EditItemActivity.this, MainActivity.class); 
data.putExtra(EDITTEXT_VALUE, etValue); 
setResult(123, data); 
startActivity(data); 

當你執行startActivity與MainActivity.class啓動一個新的Activity,所以你不會在「onActivityResult」方法中找到結果。這是因爲在完成「孩子」活動後,您不會回到主要活動。

我過去所做的是使用廣播事件來通知「MainActivity」有關更新視圖。

希望有所幫助。

1

我們可以用BroadcastReceiver或使用數據庫來存儲在EditItemActivity您編輯的結果,那麼更新結果的MainActivity

的onResume方法
相關問題