自定义 ListView 上的 StartActivityForResult
StartActivityForResult on a custom ListView
如何根据自定义 listView
执行 startActivityForResult
?
这是我的代码:
((Activity) context).startActivityForResult(intent, 100);
我应该把 onActivityResult
方法放在哪里?
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}
列表视图显示在我的 MainActivity
中,那么我将方法放在哪里 onActivityResult
?在 MainActivity
??
您应该覆盖 MainActivity 中的 onActivityResult
。当第二个 Activity 完成时,它将被调用。阅读此链接:https://developer.android.com/training/basics/intents/result.html?hl=en
class MainActivity extends ... {
...
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
}
...
我假定您的 activity 名为 MainActivity。那么你应该这样做
((MainActivity) context).startActivityForResult(intent, 100);
然后在您的 MainActivity 中覆盖 onActivityResult。
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==100){
//do your things
}
}
您应该覆盖 MainActivity 中的 onActivityResult(int requestCode, int resultCode, Intent data)。如果您使用 activity 上下文从 MainActivity 调用适配器,那么您可以删除不需要的 activity 转换。
适配器代码可以更改为
context.startActivityForResult(intent, 100);
如何根据自定义 listView
执行 startActivityForResult
?
这是我的代码:
((Activity) context).startActivityForResult(intent, 100);
我应该把 onActivityResult
方法放在哪里?
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}
列表视图显示在我的 MainActivity
中,那么我将方法放在哪里 onActivityResult
?在 MainActivity
??
您应该覆盖 MainActivity 中的 onActivityResult
。当第二个 Activity 完成时,它将被调用。阅读此链接:https://developer.android.com/training/basics/intents/result.html?hl=en
class MainActivity extends ... {
...
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
}
...
我假定您的 activity 名为 MainActivity。那么你应该这样做
((MainActivity) context).startActivityForResult(intent, 100);
然后在您的 MainActivity 中覆盖 onActivityResult。
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==100){
//do your things
}
}
您应该覆盖 MainActivity 中的 onActivityResult(int requestCode, int resultCode, Intent data)。如果您使用 activity 上下文从 MainActivity 调用适配器,那么您可以删除不需要的 activity 转换。
适配器代码可以更改为
context.startActivityForResult(intent, 100);