1

你好

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

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

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

当我单击轨迹球时,突出显示才会返回到其 TextView 目前正在滴答的行。

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

请帮助我...谢谢!

4

1 回答 1

0

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

相反,使用 aCheckedTextView和 an ImageView,并android:choiceMode与您的ListView.

现在,如果使用 ListView 重新显示原始布局(我存储它的实例以重新显示它,它不会被重新创建!),突出显示的行不再突出显示。

不要那样做。使用ViewFlipper, 或更改 的可见性ListView以及您正在显示的任何其他内容,或者如果您觉得需要将所有内容保存在一个 中Activity。或者,正如 Lew 先生所建议的,当您单击 时ListView,再启动另一个Activity.

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

于 2010-01-13T16:02:00.567 回答