1

我在片段中有一个列表视图,我想感知单击列表视图,以便我可以更改布局但我的代码不起作用。我的 xml 布局是:

   <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent" >


  <ListView
      android:id="@android:id/list"
      android:layout_width="match_parent"
      android:layout_height="match_parent" >

  </ListView>

        </FrameLayout>

我的代码是:

ListView lists=(ListView)rootView.findViewById(android.R.id.list);

     lists.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
           public void onItemSelected(AdapterView parentView, View childView, 
                                                                 int position, long id) 
           {  
             //  setDetail(position);  
               Toast.makeText(getActivity().getApplicationContext(), "Yea!!! click ho gae called", Toast.LENGTH_SHORT).show();
           }

           public void onNothingSelected(AdapterView parentView) {  



           }  
        });

但是这段代码什么也没做,请帮我整理一下,谢谢..

4

5 回答 5

2

首先,我假设您正在使用一些数据填充列表。

其次,您调用了错误的方法,setOnItemSelectedListener通常用于从列表中选择数据(最好的例子是微调器选择)。你应该打电话setOnItemClickListener(盲编码):

lists.setOnItemClickListener(new AdapterView.OnItemClickListener() {  
           public void onItemClick(AdapterView<?> parent, View view, int position, long id)
           {  
             //  setDetail(position);  
               Toast.makeText(getActivity().getApplicationContext(), "Yea!!! click ho gae called", Toast.LENGTH_SHORT).show();
           }

        });
于 2013-09-04T21:11:26.697 回答
2

您必须使用 ListFragment 的 onListItemClick 方法。

因此,将该代码添加到您的ListFragment课程中:

public void onListItemClick (ListView l, View v, int position, long id) {
    //Do what you need
}
于 2013-09-05T07:51:01.617 回答
0

你错误地实现了你的 xml 布局,因为它必须只包含在运行时必须放置默认片段列表视图的框架布局。如果您需要任何进一步的帮助或代码片段,请回复我。

于 2015-01-21T12:04:37.710 回答
0

把它放在你的代码中:

YOUR_LIST_VIEW.setOnItemClickListener(new AdapterView.OnItemClickListener()     {  
       public void onItemClick(AdapterView<?> parent, View view, int position, long id)
       {  

           Toast.makeText(getActivity().getApplicationContext(), "I was clicked", Toast.LENGTH_SHORT).show();
       }

    });
于 2015-01-20T22:59:30.723 回答
0

1.像这样修改你的适配器代码。

ListView lists=(ListView)rootView.findViewById(android.R.id.list);

 lists.setOnItemSelectedListener(your fragment instance);

您不需要在适配器中实现 onClick 处理程序。

2.在您的片段中处理 onClick 覆盖方法。

     @Override
public boolean onClick(View v) {
    //To Do
}
于 2016-03-15T18:17:59.620 回答