从片段onclick监听器调用childview

时间:2013-10-21 11:02:24

标签: android android-listview android-listfragment

正在开发一个应用,我需要在同一个活动上调用多个ListFragments。它包含主要的父ListFragment,其中包含10行。 通过点击每一行,我需要在父ListView旁边打开新的子ListView,就像这样()一样。我的编码是

public class FragmentListArray extends Activity {


     static String[] TITLES = 
            {
                    "Henry IV (1)",   
                    "Henry V",
                    "Henry VIII",       
                    "Richard II",
                    "Richard III",
                    "Merchant of Venice",  
                    "Othello",
                    "King Lear"
            };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Create the list fragment and add it as our sole content.
        if (getFragmentManager().findFragmentById(android.R.id.content) == null) {
            ArrayListFragment list = new ArrayListFragment();
            getFragmentManager().beginTransaction().add(android.R.id.content, list).commit();
        }
    }

    public static class ArrayListFragment extends ListFragment {

        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            setListAdapter(new ArrayAdapter<String>(getActivity(),
                    android.R.layout.simple_list_item_1, FragmentListArray.TITLES));
        }

        @Override
        public void onListItemClick(ListView l, View v, int position, long id) {
          // here i need to achieve my childview click listener..
        }
    }
}

我不知道如何设置onitem点击监听器。帮助我实现上述目标。提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用getActivity()并将结果转换为您的活动的类,以获取包含片段的Activity的实例。
定义一些将接受项目ID的函数,具体取决于您需要在sectond列表片段中加载数据。应该是这样的:

YourActivity activity = (YourActivity)getActivity();
activity.fillSecondFragment(clickedItemId);

答案 1 :(得分:-1)

你想要实现它的内容与Android开发人员关于片段的例子非常类似,而不是当列表项单击使用你的listfragmnet(实际上是片段)时的正常片段

http://developer.android.com/guide/components/fragments.html