我有一个片段,里面有一个ListView。
在ListView项目中有ImageButtons,如删除和更新
在ListView的适配器中我有
EditTeam.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
Intent intent=new Intent(getContext(),AddTeam.class);
((Activity)getContext()).startActivityForResult(intent, 2);
}
});
但它没有返回片段的ActivityOnResult方法
所以我猜它((Activity)getContext())部分..这需要是声明片段的东西?
片段内的ActivityForResult方法如下:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==2)
{
Toast.makeText(getContext(),"NEW TEAM SAVED",Toast.LENGTH_LONG).show();
}
}
我如何解决这个问题
谢谢
答案 0 :(得分:0)
你必须将结果转发给片段方法,它不是自动的
您必须在活动的onActivityResult中收到结果,您必须获取当前片段并手动调用其onActivityResult方法。像这样:
活动代码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// find your fragment as you need, here is by id
// Pass the activity result to the fragment
Fragment fragment = getSupportFragmentManager().findFragmentById(NavigationHelper.CONTAINER_RES_ID);
if (fragment != null) {
fragment.onActivityResult(requestCode, resultCode, data);
}
}
答案 1 :(得分:0)
确保您将正确的上下文传递给适配器。适配器的上下文必须是包含listview的特定片段的活动。