【问题标题】:Custom listview setOnItemClickListener not working.自定义列表视图 setOnItemClickListener 不起作用。
【发布时间】:2014-05-29 11:09:46
【问题描述】:

我有一个自定义列表视图,想要在列表视图行上执行点击事件,并且想要让用户定义类对象来执行下一个操作。以下是我尝试过的代码

ListView tInfoListView = (ListView)findViewById(R.id.tableInfoList);
tInfoListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {
                System.out.println("Inside");
                 Toast.makeText(this, "Clicked Now", Toast.LENGTH_SHORT).show();
            }
        });

我也试过这样

tInfoListView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,
                    long id) {
                System.out.println("Inside");
                Object o = parent.getItemAtPosition(position);
                System.out.println("*********"+o);
            }
        });

但没有任何效果。我还为列表视图行上使用的文本视图设置了以下属性。

android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"

但还是不行。请指导我以及哪里做错了。

【问题讨论】:

  • 你得到了什么确切的错误......
  • 在行布局中使用 android:descendantFocusability
  • @MeenalSharma 在父布局或所有控件中?
  • 使用 Toast.makeText(classname.this, "Clicked Now", Toast.LENGTH_SHORT).show();而不是你的代码。
  • @IrshadKhan 我使用了 system.out.println 但没有打印任何内容。

标签: android android-listview custom-lists


【解决方案1】:

您可以尝试在初始化时设置这些侦听器吗,因为似乎每次用户单击列表的行时您都在初始化视图.....

【讨论】:

    【解决方案2】:

    在您正在使用的自定义适配器中,在 getView() 方法中,将 OnClickListener 设置为您在 getView() 方法中返回的 convertView,如下所示。

    @Override
        public View getView(int position, View convertView, ViewGroup viewGroup) {
    
            if (convertView == null) {
    
                convertView = inflater.inflate(R.layout.grid_item, null);
    
            }
    
            convertView.setOnClickListener(onClickListener);
            return convertView;
        }
    

    【讨论】:

      【解决方案3】:

      您可能在行布局中有一个可聚焦的视图,例如一个按钮。

      在行布局中使用 android:descendantFocusability

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-09
        • 1970-01-01
        • 2016-01-21
        • 2012-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多