在我的应用程序中,我有一个活动在操作栏标签导航模式中有两个片段,就像android开发者网站示例一样。
在我的第一个片段中,我有一个listview(它有自己的适配器),listview的每个项目都有一个名为+1的按钮。我想刷新第二个片段,在第一个片段中显示listview中的项目,点击它们的+1按钮。
我知道我必须使用接口。但我不知道如何使用它们。我在哪里定义界面?如何使用它?以及如何从活动中访问它以刷新第二个片段?
快速帮助会很棒。感谢。答案 0 :(得分:4)
如果您想在列表项目上单击
片段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)
{
}
}
希望这会有所帮助。单击每个列表项内的按钮可能有点困难,但尝试相同的方法。您可能需要编写接口声明并在自定义适配器中调用。