为什么带有可点击链接的ListView项目无法点击?

时间:2014-10-08 11:08:41

标签: android android-listview listviewitem

我花了很多时间尝试使用可点击项创建ListView来启动新活动,并使用网址链接打开浏览器页面。

应该是以下项目:

有些文字[网址在这里]

点击Some text新活动即将开始

单击[URL],Web浏览器正在启动

我试图像在herehere中那样实现它,但无论如何这对我来说都不起作用。

也许我没有设置一些那里没有提到的属性。

简单ListView:

<ListView
    android:id="@+id/news_list_view_full"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:divider="@android:color/transparent"
    android:dividerHeight="10dp"
    android:padding="@dimen/content_padding_small"
    android:layout_below="@id/news_header"/>

ListView的项目:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="@dimen/news_item_padding"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/news_text_view_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"    
        android:textColorLink="@color/sosbg_orange"
        android:textAppearance="@style/CustomRegularTextStyle"
        android:textColor="@color/sosbg_white" />

</LinearLayout>

适配器:

public View getView(...View view...) {
    ...
    TextView text = (TextView) view.findViewById(R.id.news_text_view_text);
    text.setText(Html.fromHtml("Hello world <a href='http://google.com'>http://google.com</a>"));
    text.setMovementMethod(LinkMovementMethod.getInstance());
    view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // start new activity
        }
    }
}

目前,链接是可点击的,并打开带有适当页面的浏览器

但是listview的项目无法点击。因此,新活动不会开始。

请问您可以尝试一些我可以尝试获得我需要的结果的步骤吗?

3 个答案:

答案 0 :(得分:1)

为什么您将视图用作可点击的。?

如果需要文本可点击,请使用TextView的文本对象而不是查看。

将其替换为。

view.setOnClickListener(new View.OnClickListener() {

       }
像这样......

text.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // start new activity
    }
}

答案 1 :(得分:0)

尝试使用textview的自动链接属性 -

android:autoLink="web"
在你的例子中

-

<TextView
    android:id="@+id/news_text_view_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"    
    android:textColorLink="@color/sosbg_orange"
    android:textAppearance="@style/CustomRegularTextStyle"
    android:clickable="true"
    android:autoLink="web"
    android:textColor="@color/sosbg_white" />

答案 2 :(得分:0)

您要将代码添加为view.setOnClickListener(..),此处view是什么,我将其视为text.setOnClickListener(..),如果正确,请将以下行添加到TextView < / p>

android:clickable="true"

你的布局应该是

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/news_item_padding"
android:orientation="vertical" >

<TextView
    android:id="@+id/news_text_view_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"    
    android:textColorLink="@color/sosbg_orange"
    android:textAppearance="@style/CustomRegularTextStyle"
    android:clickable="true"
    android:textColor="@color/sosbg_white" />

</LinearLayout>

我希望这会对你有所帮助。