我有一个 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>
祝你好运:)
关于Android - ListView 没有收到带有可点击链接的 TextView 的 OnItemClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959409/