无法启动项目点击侦听器工作



我在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。

如果你能把这些类贴出来,我们可能会有更多的帮助

最新更新