java-Android在textview中多个可点击的字符串
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-Android在textview中多个可点击的字符串,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3220字,纯文字阅读大概需要5分钟。
内容图文
![java-Android在textview中多个可点击的字符串](/upload/InfoBanner/zyjiaocheng/694/3a46eb1083284c3e93aa93eb0c8f3a96.jpg)
我正在创建一个小型Android应用程序.我想在textview中显示一个文本,其中包含多个要单击的部分. (每个都应显示一些不同的消息)
最终,我设法找到了如何在一个textview中显示多个跨度的方法,但是不幸的是onClick方法不起作用.根本没有任何反应,甚至没有logcat行.
我有这样的事情:
SpannableStringBuilder ssb=new SpannableStringBuilder();
ssb.append("first second")
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View v) {
//Eredmeny2.this is just the context, name of the whole class
Toast.makeText(Eredmeny2.this, "first", Toast.LENGTH_LONG).show();
}
}, 1, 3, 0);
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View v) {
Toast.makeText(Eredmeny2.this, "second", Toast.LENGTH_LONG).show();
}
}, 7, 10, 0);
TextView t1=new TextView(this);
t1.setText(ssb);
...
文本下划线很好,但是当我单击它们时什么也没有发生.
它是TableView的一部分,尽管我认为这无关紧要.您有什么想法为什么它什么都不做?我想念什么?还是我应该以完全不同的方式来做?
提前致谢.
该部分将使用的布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/ScrollView01"
android:background="#FF0000">
<TableLayout
android:id="@+id/TableLayout01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="0"
android:showDividers="middle"
android:padding="3dp">
<TableRow
android:id="@+id/TableRow01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="3dp"
android:background="#000000"
android:textColor="#FFFFFF"
android:padding="6dp"
android:text="Hour"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<TextView android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textStyle="bold"
android:text="Minute"
android:padding="6dp"
android:textColor="#FFFFFF"
android:background="#000000">
</TextView>
</TableRow>
</TableLayout>
</ScrollView>
TextView直接使用的TextView布局如下:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp"
android:background="#000000"
android:textIsSelectable="false"
android:textColor="#FFFFFF">
</TextView>
解决方法:
据我了解,您想使textview的多个部分可点击.
这段代码对我有用!
SpannableString ss = new SpannableString("this is a text");
ss.setSpan(new myClickableSpan(1),0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new myClickableSpan(2),5, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new myClickableSpan(3),8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTextView.setText(ss);
mTextView.setMovementMethod(LinkMovementMethod.getInstance());
只需自定义ClickableSpan即可处理click事件
public class myClickableSpan extends ClickableSpan{
int pos;
public myClickableSpan(int position){
this.pos=position;
}
@Override
public void onClick(View widget) {
Toast.makeText(getApplicationContext(), "Position " + pos + " clicked!", Toast.LENGTH_LONG).show();
}
}
内容总结
以上是互联网集市为您收集整理的java-Android在textview中多个可点击的字符串全部内容,希望文章能够帮你解决java-Android在textview中多个可点击的字符串所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。