Android ListView失去了突出问题

时间:2010-01-13 14:50:24

标签: android

您好

我有一个包含ListView的布局。此ListView中的每个视图(行)都是一个LinearLayout,其中包含3个视图 - CheckBox,ImageView和TextView(水平)

我的问题是这样的 - 如果我使用轨迹球突出显示ListView中的一行,它就可以工作(行的背景颜色为橙色)。通过在突出显示行时单击轨迹球,我将当前显示的布局切换到另一个(setContentView())。现在,如果使用ListView重新显示原始布局(我存储其实例以重新显示它,它不会被重新创建!),突出显示的行不再突出显示。根据谷歌的说法,这是好的,一旦我使用轨迹球,重点将会回来。

真正的问题是即使我现在使用轨迹球在列表中向上或向下移动,也没有 ListView中的其他行将突出显示。相反,在每个应该由于滚动而突出显示的行中,TextView会被选中,我知道因为我将TextView设置为勾选(TruncateAt.MARQUEE)。

只有当我点击轨迹球时,突出显示才会返回到其TextView正在勾选的行。

我试图通过将TextView设置为不可聚焦,不可点击和禁用来解决此问题。我甚至试图在ListView上设置setItemsCanFocus(false) - 仍然没有成功。

请帮帮我......

谢谢!

1 个答案:

答案 0 :(得分:0)

  

我的布局包含一个   列表显示。每个View(行)都在这里   ListView是一个LinearLayout   包含3个视图 - CheckBox,ImageView   和TextView(水平)

相反,请使用CheckedTextViewImageView,并将android:choiceModeListView一起使用。

  

现在,如果重新显示原始内容   使用ListView布局(我存储它   重新显示它的实例,它是   不被重新创造!),   突出显示的行未突出显示   了。

不要那样做。使用ViewFlipper,或更改ListView的可见性以及您正在展示的任何内容,或者其他内容,如果您认为需要将其全部保存在一个Activity中。或者,正如Lew先生建议的那样,当您点击ListView时,请启动另一个Activity

我怀疑这些组合将有助于解决您的问题。