解决:android TextView上响应部分文字的事件
2011-08-23 15:12
399 查看
解决:android TextView上响应部分文字的事件
分类: androidjava2011-08-23 15:12849人阅读评论(0)收藏举报
androidstringlayoutencodingurlclass
运行结果如下:
TtActivity.java
public class TtActivity extends Activity {
/* * Called when the activity is first created. */
private TextView tv;
static Context ctx = null ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ctx = this ;
tv = (TextView) findViewById(R.id.tv);
// String htmlLinkText= " <a href=\" http://www.csdn.net/CAIYUNFREEDOM/\"><u>我的CSDN博客 </u></a>";
// tv.setText(Html.fromHtml(htmlLinkText));
tv.setMovementMethod(LinkMovementMethod.getInstance());
CharSequence text = tv.getText();
if (text instanceof Spannable){
int end = text.length();
Spannable sp = (Spannable)tv.getText();
URLSpan[] urls = sp.getSpans( 0 , end, URLSpan. class );
SpannableStringBuilder style = new SpannableStringBuilder(text);
style.clearSpans(); // should clear old spans
for (URLSpan url : urls){
MyURLSpan myURLSpan = new MyURLSpan(url.getURL());
style.setSpan(myURLSpan,sp.getSpanStart(url),sp.getSpanEnd(url),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
tv.setText(style);
}
}
private static class MyURLSpan extends ClickableSpan{
private String mUrl;
MyURLSpan(String url) {
mUrl = url;
}
@Override
public void onClick(View widget) {
// TODO Auto-generated method stub
Toast.makeText(ctx, ""+mUrl ,Toast.LENGTH_SHORT).show();
}
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
< TextView
android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
< /LinearLayout>
strings.xml
<?xml version="1.0" encoding="utf-8"?>
< resources>
<string name="hello">局部事件1 <a href="1" ><u>hello1</u></a>,事件2<a href="2" ><u>hello2</u></a></string>
<string name="app_name">Tt</string>
< /resources>
相关文章推荐
- 解决:android TextView上响应部分文字的事件
- Android_TextView中部分文字响应事件
- TextView中的部分文字响应点击事件
- Android中为TextView中的部分文字设置颜色和点击事件
- android 为TextView的部分文字设置超链接样式并监听点击事件
- android 给textview部分文字设置点击事件
- Android TextView 部分文字变色添加点击事件
- android 为TextView的部分文字设置超链接样式并监听点击事件
- 对android里布局文件当中的TextView对象设置事件监听,但是不响应问题解决
- 设置TextView部分文字下划线并响应点击事件(SpannableString)
- TextView下划线,部分文字并响应点击事件(SpannableString)
- 解决listview item Textview加超链接 超链接以外部分不响应listview item点击事件问题
- android textview可以设置文字颜色 部分文字点击事件处理
- Android TextView部分文字实现点击事件
- EditText,TextView部分文字点击事件响应
- Android 关于TextView中,设置指定部分文字改变颜色,和指定部分文字点击事件
- android textview 部分文字点击事件
- Android实现TextView中部分文字监听事件
- TextView中的部分文字响应点击事件
- TextView中的部分文字自定义颜色和点击事件(类似新浪微博带颜色的可点击字体)