这里写自定义目录标题

照着demo写的,文字点击不生效,闪退
demo源文链接:https://blog.csdn.net/zhongfangguiyishi/article/details/104743448

privacyactivity.java贴的mainactivity.java
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.ClickableSpan;
import android.text.style.ForegroundColorSpan;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import com.batterysaver.phonecleaner.charge.R;

public class PrivacyActivity extends AppCompatActivity {
private String SP_PRIVACY = “sp_privacy”;
private String SP_VERSION_CODE = “sp_version_code”;
private boolean isCheckPrivacy = false;
private long versionCode;
private long currentVersionCode;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_privacy);
check();
}

/*** 显示隐私政策或跳转到其他界面*/
private void check() {//先判断是否显示了隐私政策currentVersionCode = AppUtil.getAppVersionCode(PrivacyActivity.this);versionCode = (long) SPUtil.get(PrivacyActivity.this, SP_VERSION_CODE, 0L);isCheckPrivacy = (boolean) SPUtil.get(PrivacyActivity.this, SP_PRIVACY, false);if (!isCheckPrivacy || versionCode != currentVersionCode) {showPrivacy();} else {//    Toast.makeText(PrivacyActivity.this, getString(R.string.confirmed), Toast.LENGTH_SHORT).show();startActivity(new Intent(PrivacyActivity.this, SplashActivity.class));}
}/*** 显示用户协议和隐私政策*/
private void showPrivacy() {final PrivacyDialog dialog = new PrivacyDialog(PrivacyActivity.this);TextView tv_privacy_tips = dialog.findViewById(R.id.tv_privacy_tips);TextView btn_exit = dialog.findViewById(R.id.btn_exit);TextView btn_enter = dialog.findViewById(R.id.btn_enter);dialog.show();String string = getResources().getString(R.string.privacy_tips);String key1 = getResources().getString(R.string.privacy_tips_key1);String key2 = getResources().getString(R.string.privacy_tips_key2);int index1 = string.indexOf(key1);int index2 = string.indexOf(key2);//需要显示的字串SpannableString spannedString = new SpannableString(string);//设置点击字体颜色ForegroundColorSpan colorSpan1 = new ForegroundColorSpan(getResources().getColor(R.color.colorBlue));spannedString.setSpan(colorSpan1, index1, index1 + key1.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);ForegroundColorSpan colorSpan2 = new ForegroundColorSpan(getResources().getColor(R.color.colorBlue));spannedString.setSpan(colorSpan2, index2, index2 + key2.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);//设置点击字体大小AbsoluteSizeSpan sizeSpan1 = new AbsoluteSizeSpan(18, true);spannedString.setSpan(sizeSpan1, index1, index1 + key1.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);AbsoluteSizeSpan sizeSpan2 = new AbsoluteSizeSpan(18, true);spannedString.setSpan(sizeSpan2, index2, index2 + key2.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);//设置点击事件ClickableSpan clickableSpan1 = new ClickableSpan() {@Overridepublic void onClick(View view) {Intent intent = new Intent(PrivacyActivity.this, TermsActivity.class);startActivity(intent);}@Overridepublic void updateDrawState(TextPaint ds) {//点击事件去掉下划线ds.setUnderlineText(false);}};spannedString.setSpan(clickableSpan1, index1, index1 + key1.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);ClickableSpan clickableSpan2 = new ClickableSpan() {@Overridepublic void onClick(View view) {Intent intent = new Intent(PrivacyActivity.this, PrivacyPolicyActivity.class);startActivity(intent);}@Overridepublic void updateDrawState(TextPaint ds) {//点击事件去掉下划线ds.setUnderlineText(false);}};spannedString.setSpan(clickableSpan2, index2, index2 + key2.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);//设置点击后的颜色为透明,否则会一直出现高亮tv_privacy_tips.setHighlightColor(Color.TRANSPARENT);//开始响应点击事件tv_privacy_tips.setMovementMethod(LinkMovementMethod.getInstance());//  clickableSpan2.setMovementMethod(LinkMovementMethod.getInstance());tv_privacy_tips.setText(spannedString);//设置弹框宽度占屏幕的80%WindowManager m = getWindowManager();Display defaultDisplay = m.getDefaultDisplay();final WindowManager.LayoutParams params = dialog.getWindow().getAttributes();params.width = (int) (defaultDisplay.getWidth() * 0.80);dialog.getWindow().setAttributes(params);btn_exit.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();SPUtil.put(PrivacyActivity.this, SP_VERSION_CODE, currentVersionCode);SPUtil.put(PrivacyActivity.this, SP_PRIVACY, false);finish();}});btn_enter.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();SPUtil.put(PrivacyActivity.this, SP_VERSION_CODE, currentVersionCode);SPUtil.put(PrivacyActivity.this, SP_PRIVACY, true);//        Toast.makeText(PrivacyActivity.this, getString(R.string.confirmed), Toast.LENGTH_SHORT).show();Intent intent = new Intent(PrivacyActivity.this, SplashActivity.class);startActivity(intent);}});}
protected void onDestroy() {super.onDestroy();
}

}

xml:

<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
tools:context=“activity.PrivacyActivity”>

</androidx.constraintlayout.widget.ConstraintLayout>

textview文字链接无法点击相关推荐

  1. android 字体点击变色,Android TextView 中实现部分文字变色以及点击事件

    首先要想实现文字变色以及点击,都需要使用到SpannableStringBuilder,实例化该类也很简单,只需将你想要处理的字符串当做参数 SpannableStringBuilder spanna ...

  2. 文字链接_新生命道目录及音频、文字链接(20200501更新)

    新生命的道目录 (希儿分享)     "音频"和"文字版"是在公众号发布的对应讲道的音频.文字版链接,弟兄姊妹可点击链接收听.阅读.荣耀归于主!APP网页链接和 ...

  3. HTML5 Canvas中实现文字链接

    HTML5中没有关于链接的API,所以我们只有自己来实现了. 首先,我们来想一下,链接有什么特点.第一个想到的估计就是它能跳转,这是链接最显著的特点,当然这也是废话,要不怎么能叫链接?第二个想到的可能 ...

  4. android studio app字体大小设置,Android Studio App设置TextView文字内容大小颜色

    设置TextView文字内容大小颜色 1.第一种方法在activity_main.xml李设置,Java文件不用改: android:text="这里是文字" android:te ...

  5. 0005 前端 Html 04 AutoFileName 图片的显示 文字链接 图片链接 页面内链接 列表 加超链接的列表

    以下为学习笔记,用来备忘.交流 工具:Sublime Text 3 渲染:谷歌浏览器 AutoFileName工具的安装 安装过程参见添加Emmet插件 参考我上面安装Emmet插件的过程,基本一样. ...

  6. 文字html广告,文字链接广告

    文字链接广告[编辑] 概述 文字链接广告是一种只有文字的广告,点击可以进入相应的广告页面.了解其特点.原则.适用性以及相关的制作能够有效提升广告的适用效率. 一.简介 文本链接广告是以一排文字作为一个 ...

  7. 链接被点击的默认行为——带到另一个窗口

    图片链接被点击时,默认会被带到图片查看窗口. 在给某个元素添加了事件处理函数后,一旦事件发生,相应的JavaScript代码就会得到执行.被调用的javascript函数可以返回一个值,这个值将被传递 ...

  8. 设置TextView文字

    有2种方法可以设置TextView文字居中: 一:在xml文件设置:android:gravity="center" 二:在程序中设置:m_TxtTitle.setGravity( ...

  9. NEC学习 ---- 模块 - 带点文字链接列表

    带点文字链接列表, 实现的效果是, 调整字体大小, 点的位置不会跟着变动. HTML如下: <div class="container"><div class=& ...

最新文章

  1. MPB:利用无菌植物和可培养细菌体系研究根系微生物组功能
  2. Linux下Redis3.2的安装和部署
  3. mysql 多列索引的生效规则
  4. [你必须知道的.NET]第二十七回:interface到底继承于object吗?
  5. 某马Java架构师实战学习手册
  6. List - Map 工具类,list转为map
  7. echo中使用逗号和句号的区别
  8. 【云速建站】后台配置邮费
  9. python 异常处理模块_Python Exceptions 异常处理全过程以及异常模块详细解析
  10. TensorFlow学习笔记--第三节张量(tensor)及其定义方法
  11. win10常用的小技巧
  12. 2022年6月25日PMP考试通关宝典-2
  13. 第一次在CSDN上写博客
  14. 卖货文案二:建立消费者信任
  15. semilogx 多条曲线_如何在excel中绘制多条曲线
  16. 七牛C#语言搭建javascript上传--包含后端请求token(前端javascript+后端c#)
  17. APOLLO UDACITY自动驾驶课程笔记——感知、预测
  18. Intellij IDEA中push代码到github中引发的部分报错 解决思路
  19. 常用激活函数及其原理/应用,以及相关的问题
  20. 官方也无力回天?“SharedPreferences 存在什么问题?”

热门文章

  1. ibatis 如何直接执行sql语句
  2. 如何对付vc6的疑难杂症
  3. 屏幕监控中捕获鼠标位置信息
  4. 回字有四样写法之引号编码
  5. golang mysql scan_golang 实现 mysql 数据库备份
  6. python编程(redis操作)
  7. linux驱动编写(入门)
  8. 人物结局 归德侯府_影视里的唐伯虎抱得美人归 历史上的他结局又是什么样呢?...
  9. 管理员用户不同身份登录页面代码PHP,wordpress管理员登录和普通用户登录后跳转到不同页面-♚付涛纪实阁♚...
  10. java 结合redis队列_在 Java 中使用 redis 的消息队列服务