我在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;
}
答案 0 :(得分:0)
我运行了你的代码并抛出了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();
}
});
答案 1 :(得分:0)
在查看您的代码后,我注意到您的列表视图中没有任何内容。
@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;
}
您可能希望先将一些项目添加到列表视图中,然后尝试单击它们。否则你将有一个空的列表视图。
我会使用数组适配器或相应的适配器,具体取决于您要在列表视图中显示的数据类型。
答案 2 :(得分:0)
您可以发布适配器代码和listview项目布局吗?
列表视图中有一些项目(如复选框)可能会抓住焦点而不是整个行布局。
此外,您的代码不会显示正在创建的listview适配器,甚至不会设置为listview以实际填充。
如果您可以发布这些课程,我们可以提供更多帮助