具有可单击跨度并使用可单击跨度设置文本。您可以为可点击范围设置自定义颜色。当您单击文本视图中的文本时,它会显示一个 toast。
String title="hello";
SpannableString ss1= new SpannableString(title);
ss1.setSpan(new MyClickableSpan(title), 0, ss1.length(), 0);
tv = (TextView) findViewById(R.id.textview);
tv.setText(ss1);
tv.setMovementMethod(LinkMovementMethod.getInstance());
我的可点击跨度
class MyClickableSpan extends ClickableSpan{
String clicked;
public MyClickableSpan(String string)
{
super();
clicked =string;
}
public void onClick(View tv)
{
// onclick of text in textview do something
Toast.makeText(MainActivity.this,clicked ,Toast.LENGTH_SHORT).show();
//display a toast
}
public void updateDrawState(TextPaint ds)
{
ds.setColor(Color.BLUE);//set text color
ds.setUnderlineText(true); // set to false to remove underline
}
}
结果快照
EDIT:
单击文本视图中的文本,打开带有 url 的浏览器。您还可以将 url 传递给活动。检索 url 并将 url 加载到 webview 中。
<uses-permission android:name="android.permission.INTERNET"/>
public void onClick(View tv) {
//do something
Toast.makeText(MainActivity.this,clicked ,
Toast.LENGTH_SHORT).show();
String url = "http://www.example.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
OR
在 onClick() 中
Intent t= new Intent(MainActivity.this,SecondActivity.class);
t.putExtra("key","http://www.google.com");
startActivity(t);
第二个.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<WebView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/wv"></WebView>
</LinearLayout>
然后在 SecondActivity 中
公共类 SecondActivity 扩展 Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
WebView wv= (WebView) findViewById(R.id.wv);
Bundle extras= getIntent().getExtras();
if(extras!=null)
{
wv.loadUrl(extras.getString("key"));
}
}
}