用户进行选择时调用onResult

时间:2013-02-26 11:28:28

标签: android checkbox android-listview start-activity

我有一些列表视图,其中包含一些可检查的cetegories。我想用startActivityForResult开始此活动,当用户返回初始活动时,此活动将开始创建已选择的类别并将其ID存储在列表中。问题是我应该在哪里调用onResult方法。我的第一个想法是这样说:

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

但是,正如我所知,isFinishing()不是确保活动完成的最佳方式,而且我们无法确定何时会调用它。当用户完成检查他的类别时,有没有更好的方法来返回结果?我的意思是每次用户做出选择时我都无法发送onResult

2 个答案:

答案 0 :(得分:0)

在选择过程中调用setResult(int resultCode, intent data)并覆盖之前活动中的onActivityResult。

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

  //do something here.

}

我希望这可以帮助你...... :)

答案 1 :(得分:0)

当您想要识别活动的结果时,您不必致电onResult(),而是在用户做出选择时使用setResult,当您的活动结束时,最后一次设置结果将传播回为您的活动开始的活动。

代码应如下所示:

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