除了一些其他视图之外,我还有一个ListView,它在每一行中都包含一个TextView。TextView呈现可包含链接的html内容。
下面的代码出现在列表适配器中。m_textview.setMovementMethod(LinkMovementMethod.getInstance());m_textview.setText(Html.fromHtml(myhtmlcontent));
这会导致listview不再接收单击事件。我决定将列表onclick代码放在适配器返回的视图上。这并不完全像预期的那样工作。现在,当我单击行中除文本视图之外的任何位置时,都可以启动另一个活动。我希望用户能够点击文本视图的非链接部分,并启动另一个活动。
如果我将onclick移到textview而不是它的父视图中,它可以工作,但现在单击链接会触发两个事件-一个用于单击链接,另一个用于textview (这不是所需的)。
我注意到google+和peep on android以我想要的方式工作。我不确定如何才能做到这一点。
发布于 2013-04-25 16:04:59
这实际上是一个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>
祝你好运:)
发布于 2011-11-10 08:33:38
ListView项目内的可聚焦视图将禁用选择ListView项目的功能。将android:focusable="false"
应用于TextView将允许OnItemClick再次工作。您可能还需要应用android:focusableInTouchMode="false"
来使轨迹球忽略链接,因为在ListView中的可聚焦元素上单击轨迹球可以同时单击链接和ListView项。
发布于 2013-11-26 20:16:49
您可以在列表视图上附加一个setOnItemClickListener。
https://stackoverflow.com/questions/7959409
复制相似问题