Android - ListView 没有收到带有可点击链接的 TextView 的 OnItemClick

标签 android listview textview

我有一个 ListView,除了许多其他 View 外,每一行都包含一个 TextView。 TextView 呈现可能包含链接的 html 内容。

下面的代码出现在列表适配器中。 m_textview.setMovementMethod(LinkMovementMethod.getInstance()); m_textview.setText(Html.fromHtml(myhtmlcontent));

这会导致 ListView 不再接收点击事件。我决定将列表 onclick 代码放在适配器返回的 View 上。这并不完全按预期工作。现在,当我单击除 textview 之外的行中的任何位置时,我可以启动另一个 Activity 。我希望用户能够单击 textview 的非链接部分并启动另一个 Activity 。

如果我将 onclick 移动到 textview 而不是其父 View ,它可以工作,但现在单击链接会触发两个事件 - 一个用于单击链接,另一个用于 textview(这是不需要的)。

我注意到 google+ 和 peep on android 以我想要的方式工作。我不确定如何实现。

最佳答案

这实际上是一个 BUG .要解决此问题,您可以将 android:descendantFocusability="blocksDescendants" 添加到您的 ListView's 行布局 xml。例如

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:descendantFocusability="blocksDescendants"
android:orientation="vertical" >

 <TextView
    android:id="@+id/lblStatusMessage"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:autoLink="web"
    android:focusable="false"
    android:textSize="15sp" />
</LinearLayout>

来源:thisthis

祝你好运:)

关于Android - ListView 没有收到带有可点击链接的 TextView 的 OnItemClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959409/

相关文章:

android - 如何在按钮顶部创建对话框

android - 如何以uri的形式从 Intent 中获取数据?

css - 如何删除 ListView 中第一项的边距?

php - yii2 从 ListView 中删除摘要/计数

android - 如何在发生意外崩溃时保存 Activity 数据

android - 如何制作向上流动的textview

android - 检测 Android 应用程序何时首次运行

Android -> 如何动画到新位置

java - ListView 仅显示数组列表中的第一个结果

java - 我们如何正确使用 TextView 和字体?