按钮,在片段的Lis​​tView项接口定义?(Button in Fragment's L

2019-07-21 05:18发布

在我的应用程序,我有在动作条的标签导航模式两个片段,就像Android开发者网站例如活动。

在我的第一个片段我有一个列表视图(它有它自己的适配器)和列表视图的每个项目都有一个名为+1按钮。 我想刷新,显示在第一个片段,他们的+1按钮的点击列表视图中的项目的第二个片段。

我知道我必须使用的接口。 但我不能弄清楚如何使用它们。 我在哪里有定义接口? 如何使用它? 以及如何从活动访问刷新第二个片段?

一个快速的帮助将是巨大的。 谢谢。

Answer 1:

如果你想让它在列表项点击

片段A:

public class FragmentA extends ListFragment {

OnItemSelectedListener mListener;

...
// Container Activity must implement this interface
public interface OnItemSelectedListener {
    public void onItemSelected(int position);
}
...

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    try {
        mListener = (OnItemSelectedListener) activity;
    } catch (ClassCastException e) {
        throw new ClassCastException(activity.toString() + " must implement OnItemSelectedListener");
    }
}

@Override
public void onListItemClick(ListView l, View v, int position, long id) {

    mCallback.onItemSelected(position);

    }   
}

ContainerActivity:

public class ContainerActivity extends FragmentActivity 
    implements FragmentA.OnItemSelectedListener
{

//...



public void onItemSelected(int Position/*pass anything which u want*/) 
    {

        SecondFragment second_fragment = (SecondFragment) getSupportFragmentManager().findFragmentById(R.id.fragmentB);

        if(second_fragment !=null)
        {
            second_fragment.UpdateUI(Position); 
        }

    }


 }

第二块碎片:

public class SecondFragment extends Fragment {

    ...
    public void UpdateUI(Position)
    {

    }

}

希望这可以帮助。 在每个列表项内按钮的点击可能会有点困难,但尝试了同样的方法。 可能是你必须写在你的自定义适配器接口声明和调用。



文章来源: Button in Fragment's ListView item Interface Definition?