如何从片段的自定义ArrayAdapter

时间:2016-09-07 16:55:53

标签: android listview android-fragments

我有一个片段,里面有一个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();
    }

}

我如何解决这个问题

谢谢

2 个答案:

答案 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的特定片段的活动。