【问题标题】:Click is not working on the Listitem Listview android单击在 Listitem Listview android 上不起作用
【发布时间】:2012-07-23 09:42:33
【问题描述】:

我用ListActivity 实现了android listview。在这里,我遇到的问题是,当我单击列表项时,当闪烁颜色也没有出现时,没有执行任何操作,即橙色。那么,您对我的问题的这个友好回答有什么想法吗?

@Override
protected void onListItemClick(ListView l, View v, int position, long id) 
{
    super.onListItemClick(l, v, position, id);
    Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT)
            .show();

}

我把这段代码也放到了 Main ListActivity 中。

【问题讨论】:

  • 你的 List 中有按钮或 ImageButton 吗?
  • @android Selva:是的,我有……有问题吗?

标签: java android android-listview listactivity


【解决方案1】:

您首先要注意的是,只要您的ListView 元素中存在诸如按钮或ImageButtons 之类的可点击元素,它们就会控制点击事件。所以你的ListView 将没有机会接受点击事件。

您只需要将您在 ListView 中的ButtonImageButtonfocusable 属性设置为false。但是它们仍然可以正常工作,而且您的 ListView 的onListItemClick 也可以正常工作。

试试这个,

        <Button  android:id="@+id/textsize_increaser"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/back_button"
        android:focusable="false"
        android:text=" A + "/>

我在这里添加了这个android:focusable="false",它工作正常。试试看。

【讨论】:

  • 如果您只收听项目点击,您还应该添加clickable=false
  • 请帮帮我。在过去的 7 个小时里,我一直被困在这个问题上,这是一个如此简单的问题。 stackoverflow.com/questions/35108940/why-cant-i-remove-an-item/…
  • 对我来说,imageButton.setFocusable(false)imageButton.setFocusableInTouchMode(false) in 适配器 有帮助。在 XML 中没有效果!
  • 你救了我的@ss,谢谢你来自未来,陌生人! :)
【解决方案2】:

你是否将 ListView 的选择模式设置为 SINGLE :

     listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

如果列表项中有任何可点击的图像视图或文本视图或按钮,则使它们不可聚焦(在您的适配器类中):

        yourButton.setFocusable(false);
        yourButton.setFocusableInTouchMode(false);

【讨论】:

【解决方案3】:

您是否使用自定义适配器?并使用按钮或任何将列表列表视图焦点作为子项吃掉的视图来膨胀布局,那么它显然不会起作用。确保设置

    android:focusable="false"

到 xml 文件中的此类视图。希望这对你有用。

【讨论】:

【解决方案4】:

在你的 listactivity java 文件中设置它

listview1.setFocusable(false);

【讨论】:

    【解决方案5】:

    其实有一个参数是为了防止子视图获得焦点,只需在父布局中添加以下内容:

    android:descendantFocusability="blocksDescendants"
    

    如文档所述:

    ViewGroup 将阻止其后代接收焦点。

    【讨论】:

      【解决方案6】:

      Eclipse 建议我将 textIsSelectable="true" 添加到用于列表视图的布局 xml 中的 TextViews 中。

      好吧,如果你想点击列表中的项目,那么你不应该添加这些标签。

      【讨论】:

        【解决方案7】:

        确保你是

        1. 不使用带有列表视图的滚动视图
        2. 未在列表视图的行项目布局中使用滚动视图

        如果 Scroll View 出现在上述任何地方,请将其删除

        【讨论】:

          【解决方案8】:

          请参阅此帖子以获取解决方案:

          Click is not working on the Listitem Listview android

          View v = parent.getChildAt(position);
          parent.requestChildFocus(v,view);
          v.setBackground(res.getDrawable(R.drawable."Some drawable for clicked row"));
          
          int count = parent.getChildCount();
          for(int i=0; i<count; i++)
          {
             if(i!=position)
             {
               v = parent.getChildAt(i);
               v.setBackground(res.getDrawable(R.drawable."some drawable for not clicked row));
             }
          }
          

          【讨论】:

            【解决方案9】:
            listview.setOnItemClickListener(new OnItemClickListener() {
                        @Override
                        public void onItemClick(AdapterView<?> parent, View v, int pos,
                                long id) {
                            Toast.makeText(v.getContext(), exm.get(pos).getDefinition(),
                                    Toast.LENGTH_SHORT).show();
            
            
                        }
                    });
            

            【讨论】:

              【解决方案10】:
              listItemButton.setFocusable(false);
              listItemButton.setFocusableInTouchMode(false);
              

              在您的适配器中设置上述内容。它不适用于 XML

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-01-28
                • 2015-11-02
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多