【发布时间】:2015-02-04 00:43:27
【问题描述】:
尝试将setOnItemClickListener 添加到片段时遇到问题。
这是我的片段。
public class LocalesFragmento extends Fragment {
ListView locales_list;
private List localesList;
private Context context;
public LocalesFragmento() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View vista = inflater.inflate(R.layout.locales_list, container, false);
locales_list = (ListView) vista.findViewById(R.id.localesList);
new getLocalesAsyncTask().execute();
return vista;
}
private void setListAdapter() {
Log.e("Adapter","Adapter...");
locales_list.setAdapter(new LocalesAdapter(getActivity(), getActivity(), localesList));
locales_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
//detailInstagram(list.get(position));
}
});
}
永远不会执行 setOnItemClickListener。有任何想法吗? 我需要实现其他方法吗?
谢谢。 最好的问候。
【问题讨论】:
-
看起来你没有调用
setListAdapter方法。如果是,您从哪里调用该方法? -
是的,我调用了这个方法...在执行
AsyncTask之前从WebService 获取数据。 -
您的列表项布局是什么样的?如果任何视图是可点击或可聚焦的(例如,它包含一个按钮),则永远不会调用监听器。
-
LocalesAdapter 的构造函数对我来说似乎很奇怪。我通常在实例化调用中使用分配给 Context 类型变量 mCtx 的 getApplicationContext()。你有两次 getActivity() 。为什么你需要两次上下文?
-
发布您的列表视图项目布局。如果您使用任何具有焦点的视图(如按钮、图像按钮),则 setOnItemClickListener 将不会调用。
标签: android android-fragments android-listview onclicklistener