我在SO上尝试了各种解决方案,没有解决我的问题。吐司没有显示,Log.d
条目也没有显示……下面是我的代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_product_row, container, false);
ListView listView = (ListView) v.findViewById(android.R.id.list);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast toast = new Toast(getActivity().getBaseContext());
String text = "Clicked " + Integer.toString(position) + ":" + Long.toString(id);
toast.setText(text);
toast.setDuration(Toast.LENGTH_SHORT);
toast.show();
Log.d("BagIt.ItemClick", text);
}
});
return v;
}
我运行了你的代码,它抛出了java.lang.RuntimeException,因为Toast不是用Toast. maketext()创建的。
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String text = "Clicked " + position + ":" + id;
Toast toast = Toast.makeText(getActivity(), text, Toast.LENGTH_SHORT);
toast.show();
}
});
查看代码后,我注意到列表视图中没有任何内容。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_product_row, container, false);
ListView listView = (ListView) v.findViewById(android.R.id.list);
//set your array adapter here to your list view and pass the array of items
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast toast = new Toast(getActivity().getBaseContext());
String text = "Clicked " + Integer.toString(position) + ":" + Long.toString(id);
toast.setText(text);
toast.setDuration(Toast.LENGTH_SHORT);
toast.show();
Log.d("BagIt.ItemClick", text);
}
});
return v;
}
您可能需要先向列表视图添加一些项目,然后尝试单击它们。否则,您将得到一个空列表视图。
我会使用数组适配器或适当的适配器,这取决于你想要在列表视图中显示的数据类型。
你可以张贴你的适配器代码和你的listview项目布局吗?
有可能在你的列表视图中有一些项目(如复选框)是抓取焦点,而不是整个行布局。
同样,你的代码没有显示正在创建的listview适配器,甚至没有显示要实际填充的listview。
如果你能把这些类贴出来,我们可能会有更多的帮助