0

我的应用程序有几个RelativeLayouts,每个都有 aTextView和 a ListView。我已经使RelativeLayouts 可点击(并且效果很好)。问题是,ListView嵌入其中的 s 也是可点击的,并且每当用户尝试点击RelativeLayout列表中的区域时,点击会注册为列表。

我尝试将ListViews 设置为clickable="false"focusable="false". 我试过s descendantsFocusability="blocksDescendants"RelativeLayout那些行不通。

解决方案是什么?这是我的第一个应用程序,我错过了什么吗?

4

2 回答 2

0

我通过使列表项的 onItemClick 方法模仿其父级 RelativeLayout 的 onClick 方法来解决我的问题。

如果父RelativeLayout 会导致fragmentA,那么它的子列表中的每一项也会导致fragmentA。

这感觉有点半生不熟和便宜,但它现在有效。

于 2012-09-29T18:47:13.417 回答
0

据我所知,如果您尚未将 listView 对象定义为具有 android:onClick 属性 =“”,那么它们不应响应单击事件。但是,将它们设置为 clickable="false" 不会有什么坏处。

在 android 活动中管理 onClick 事件的最简单方法是在布局中定义每个应以这种方式监视点击事件的视图:

public void onClick(View v) {
    switch(v.getId()){
          case R.id.ITEM1 :
              //Insert stuff to do when clicked here
          break;
          case R.id.ITEM2 :
              //Insert stuff to do when clicked here
          break;
    }
}

此方法应在具有以编程方式或 XML 布局定义的相关布局和适当视图的活动上实现。如果你不想使用 switch case,你总是可以用 if(v.getId() == R.id.ITEM_TO_CHECK)... 的条件替换 if-else 语句。

干杯,

杰米

于 2012-09-28T01:17:27.607 回答