我花了很多时间尝试使用可点击项创建ListView
来启动新活动,并使用网址链接打开浏览器页面。
应该是以下项目:
有些文字[网址在这里]
点击Some text
新活动即将开始
单击[URL],Web浏览器正在启动
我试图像在here或here中那样实现它,但无论如何这对我来说都不起作用。
也许我没有设置一些那里没有提到的属性。
简单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的项目无法点击。因此,新活动不会开始。
请问您可以尝试一些我可以尝试获得我需要的结果的步骤吗?
答案 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>
我希望这会对你有所帮助。