Android 当用户做出选择时调用onResult
我有一个列表视图,其中包含一些可检查的选项。我想用Android 当用户做出选择时调用onResult,android,checkbox,android-listview,start-activity,Android,Checkbox,Android Listview,Start Activity,我有一个列表视图,其中包含一些可检查的选项。我想用startActivityForResult启动此活动,当用户返回初始活动时,此活动将开始创建已选择的类别,并将其ID存储在列表中。问题是我应该在哪里调用onResult方法。我的第一个想法是这样说: @Override protected void onPause() { super.onPause(); if(isFinishing()){ onResult()....call here }
startActivityForResult
启动此活动,当用户返回初始活动时,此活动将开始创建已选择的类别,并将其ID存储在列表中。问题是我应该在哪里调用onResult
方法。我的第一个想法是这样说:@Override
protected void onPause() {
super.onPause();
if(isFinishing()){
onResult()....call here
}
}
但是,正如我所知,isFinishing()
并不是确保活动正在完成的最佳方法,我们无法确定何时调用它。当用户检查完其类别后,是否有更好的方法返回结果?我的意思是,我不能每次用户进行选择时都发送onResult
。在选择过程中调用setResult(int-resultCode,intent-data)
,并在上一个活动中覆盖onActivityResult
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
//do something here.
}
我希望这能帮助你……:) 当您想要识别活动的结果时,您不必调用
onResult()
,而是在用户进行选择时使用setResult
,当您的活动完成时,最后一次设置的结果将传播回启动活动以获取结果的活动
代码应该如下所示:
onItemSelected(){ // or onClick
getItem();
setResult();
}
如果我将setResult放在Activity的finish方法中会更好吗?如果您跟踪您的选择,您可以这样做,但请记住,android并不能确保回调所有生命周期方法。。。因此,在某些情况下,onPause可能无法执行。你是说onFinish在你说的onPause的地方吗?没有onFinish方法,我说的是完成回调(onPause、onStop、onDestroy)