`
- 浏览:
253443 次
- 性别:
- 来自:
上海
-
android 同一个TextView不同文字的点击事件
- 转自:http://blog.csdn.net/hap_gx/article/details/8781910
-
- package com.example.textviewclick;
-
- import android.app.Activity;
- import android.os.Bundle;
- import android.text.Html;
- import android.text.Spannable;
- import android.text.SpannableStringBuilder;
- import android.text.TextPaint;
- import android.text.method.LinkMovementMethod;
- import android.text.style.ClickableSpan;
- import android.text.style.URLSpan;
- import android.view.View;
- import android.widget.TextView;
- import android.widget.Toast;
-
- public class MainActivity extends Activity {
- TextView mTextView2;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.textview);
-
- mTextView2 = (TextView)findViewById(R.id.text2);
- /*********** 同一个TextView不同文字的点击事件*******/
- StringBuilder actionText = new StringBuilder();
- actionText
- .append("<a style=\"text-decoration:none;\" href='username'>"
- + "username:" + " </a>");
- actionText
- .append("隐形人"
- + "<a style=\"color:blue;text-decoration:none;\" href='singstar'> "
- + " love" + "</a>");
- actionText.append(" : \"" + "孙燕姿" + "\"");
- mTextView2.setText(Html.fromHtml(actionText.toString()));
- mTextView2.setMovementMethod(LinkMovementMethod
- .getInstance());
- CharSequence text = mTextView2.getText();
- int ends = text.length();
- Spannable spannable = (Spannable) mTextView2.getText();
- URLSpan[] urlspan = spannable.getSpans(0, ends, URLSpan.class);
- SpannableStringBuilder stylesBuilder = new SpannableStringBuilder(text);
- stylesBuilder.clearSpans(); // should clear old spans
- for (URLSpan url : urlspan) {
- TextViewURLSpan myURLSpan = new TextViewURLSpan(url.getURL());
- stylesBuilder.setSpan(myURLSpan, spannable.getSpanStart(url),
- spannable.getSpanEnd(url), spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- }
- mTextView2.setText(stylesBuilder);
- }
-
- private class TextViewURLSpan extends ClickableSpan {
- private String clickString;
-
- public TextViewURLSpan(String clickString) {
- this.clickString = clickString;
- }
-
- @Override
- public void updateDrawState(TextPaint ds) {
- ds.setColor(MainActivity.this.getResources().getColor(R.color.text_color));
- ds.setUnderlineText(false); //去掉下划线
- }
-
- @Override
- public void onClick(View widget) {
- if (clickString.equals("username")) {
- Toast.makeText(getApplication(), clickString, Toast.LENGTH_LONG)
- .show();
- } else if (clickString.equals("singstar")) {
- Toast.makeText(getApplication(), clickString, Toast.LENGTH_LONG)
- .show();
- }
- }
- }
-
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本教程将详细讲解如何实现“同一个TextView不同文字的点击事件”,以便于在单个`TextView`内实现多种交互功能。 首先,我们需要理解`SpannableString`和`ClickableSpan`这两个关键概念。`SpannableString`是`String...
以下是一个简单的示例,展示了如何创建一个TextView并实现部分文字的点击事件: ```java TextView textView = findViewById(R.id.textView); String text = "这是一个示例文本,点击这里"; String clickablePart = ...
以下是对这个"Android 多个TextView文字横向自动滚动(可点击)"知识点的详细说明。 首先,我们要理解`TextView`是Android中用于显示单行或多行文本的视图组件。在实现自动滚动效果时,通常会用到`TextView`的`...
Android TextView 文字片点击特效、点击事件监听实现了TextView 文字片段 点击_长按 事件监听 以及点击特效关键技术 在自定义Span中对TextPaint的color、bgcolor等属性设置选中时的文字颜色,背景色、 在自定义...
在Android开发中,`TextView` 是一个非常常用的控件,用于显示文本信息。在实际应用中,我们常常需要对`TextView`进行个性化设置,比如显示多种颜色、多种字号,甚至让不同颜色的文本具备不同的点击事件。这篇内容将...
如果既要改变颜色又要添加点击事件,可以在同一个`SpannableStringBuilder`或`SpannableString`中同时应用`ForegroundColorSpan`和`ClickableSpan`。只需确保`setSpan()`方法的调用顺序正确,因为后一个span会覆盖...
在实际项目中,你可能会遇到更复杂的情况,如动态加载图片、处理点击事件等。这时,你可能需要使用`SpannableStringBuilder`来动态修改已有的SpannableString,或者使用`DynamicDrawableSpan`来处理图片的大小和位置...
在上述代码中,我们首先设置了TextView的初始显示文本,然后通过`setOnClickListener`为Button添加了一个点击监听器。在点击事件处理函数中,我们根据`isTextHidden`的值来切换TextView的显示状态,并更新Button的...
开发者可能创建了一个简单的Activity,包含一个或多个TextView,并在用户点击时改变它们的状态。通过分析这个示例,你可以更深入地理解TextView与Selector的交互方式。 总之,通过使用Selector,我们可以轻松地为...
Android TextView 文字片点击特效、点击事件监听实现了TextView 文字片段 点击_长按 事件监听 以及点击特效关键技术 在自定义Span中对TextPaint的color、bgcolor等属性设置选中时的文字颜色,背景色、 在自定义...
另外,为了使"点击查看更多"看起来更像一个按钮,我们还可以通过设置`android:textColor`、`android:background`等属性来改变其样式。例如,可以添加一个背景颜色,改变文字颜色,或者使用自定义的Drawable资源。 `...
在这种场景下,“Android可伸缩的TextView”提供了一个解决方案,它允许用户点击以展开或收起TextView的内容,从而自定义控制显示的行数,并能以特定的提示文字表示是否还有更多内容。这种功能在诸如公告、评论或者...
本资源"安卓textView相关-androidtextview点击文字收缩效果.rar"显然是一个关于TextView实现点击后文字收缩动画效果的示例项目。下面将详细解释这个效果的实现原理以及可能涉及的技术点。 首先,TextView的点击事件...
Android 中 TextView 实现部分文字...使用 SpannableString 和 ClickableSpan 可以实现 TextView 中的部分文字可点击跳转功能,并且可以根据不同的条件来设置点击事件的行为。这对于提高用户体验和交互效果非常有帮助。
通过本文的介绍,我们可以看到在Android中为TextView中的文本添加划线效果是一个相对简单的过程。只需要通过设置Paint对象的标志位即可轻松实现。然而,在实际开发过程中还需要注意一些细节问题,如兼容性、性能以及...
首先,我们需要在布局XML文件中定义一个TextView来展示部分文字,以及一个Button来触发显示或隐藏文字的事件。以下是一个简单的示例: ```xml xmlns:android="http://schemas.android.com/apk/res/android" ...
在Android开发中,流式TextView(Flowing TextView)是一种特殊类型的文本视图,它能够适应文本的长度,自适应地换行,使文本在屏幕中按照特定的方式流动展示,类似于常见的文字标签效果。这种效果常见于新闻应用、...
这个技术专题主要探讨如何利用SpannableString来创建一个TextView,实现点击事件、下划线、局部字体放大、局部颜色变化以及删除线等多种功能。 首先,SpannableString是CharSequence的一个子类,它允许我们对字符串...
ClickableSpan则是可以应用于SpannableString的一个类,它使我们能够为字符串的一部分添加点击事件。 步骤1:创建SpannableString ```java String originalText = "这是个示例文本,点击这里了解更多"; ...
综上所述,实现"android中TextView高亮并可以点击"的功能需要掌握Spanned、SpannableString、ClickableSpan、自定义点击事件处理、文本解析以及UI性能优化等技术。通过这些技术,我们可以构建出类似微博应用那样具有...