2013-02-26 159 views
0

我有一些可檢查的cetegories的listview。我想從startActivityForResult開始此活動,當用戶返回到初始活動時,此活動將開始創建已選擇的類別並將其ID存儲在列表中。問題是我應該在哪裏調用onResult方法。我首先想到的是把這樣的:
用戶做出選擇時的onResult調用

@Override 
protected void onPause() { 
    super.onPause(); 
    if(isFinishing()){ 
     onResult()....call here  
    } 
} 

然而,當我知道isFinishing()是不肯定的是,活動結束的最好方式,而我們不能確定何時會調用。當用戶完成檢查類別時,是否有更好的方式來返回結果?我的意思是每次用戶做出選擇時我都不能發送onResult

回答

0

你不必調用onResult()當你要確定你的活動的結果,而是使用setResult每當用戶進行選擇,當你活動完成最後設置的結果將傳播回開始您的活動結果的活動。

代碼應該是這樣的:

onItemSelected(){ // or onClick 
    getItem(); 
    setResult(); 
} 
+0

如果我把setResult放在Activity的finish方法中,會更好嗎? – user2065529 2013-02-26 11:50:21

+0

你可以做到這一點,如果你確實跟蹤你的選擇,但請記住,android並不能確保回調所有的生命週期方法...所以在某些情況下你的onPause可能不會被執行 – 2013-02-26 11:58:31

+0

你的意思是onFinish那裏你說onPause? – user2065529 2013-02-26 12:09:07

0

在選擇過程中調用setResult(int resultCode, intent data),並覆蓋之前活動中的onActivityResult。

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 

    //do something here. 

} 

我希望這有助於你... :)

+0

很抱歉,但我只能接受一個答案。謝謝! – user2065529 2013-02-26 11:45:10

+0

好的沒問題。 :) – 2013-02-26 11:46:12

相關問題