"@you bang---

go on -------"

需要做分享内容,前面有段格式固定写死,同时颜色为灰色;后面的内容可以编辑,颜色为黑色,同时支持多行

有人用textview做固定格式,edittext做可编辑部分;

如果是单行,感觉还没多大问题,但多行,第二行起始位置就无法控制了。

1.字体部分颜色灰色问题:

对于android的显示字体样式,有Spannable对象,可以高亮部分字体,还可以给字体设置超链接

参考http://blog.csdn.net/hitlion2008/article/details/6856780

SpannableStringBuilder style=new SpannableStringBuilder(mShareTitle + shareContentString);
style.setSpan(new ForegroundColorSpan(Color.LTGRAY),0,mShareTitle.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
shareContentTxt.setText(style);
Editable b = shareContentTxt.getText();
shareContentTxt.setSelection(b.length());

2.@you不允许编辑问题:

偷换概念,发现如果edittext修改的对象在不许编辑区域,就让内容还原,从而产生不可编辑的错觉

这里用的TextWatcher

shareContentTxt.addTextChangedListener(new TextWatcher() {
int current_start = -1;
boolean last_changed = false;
CharSequence current_s;
@Override
public void afterTextChanged(Editable s) {
if (current_start < mShareTitle.length() && !last_changed) {
last_changed = true;
SpannableStringBuilder style=new SpannableStringBuilder(current_s);
style.setSpan(new ForegroundColorSpan(Color.LTGRAY),0, mShareTitle.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
shareContentTxt.setText(style);
shareContentTxt.setSelection(shareContentTxt.getText().length());
} else {
last_changed = false;
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
current_start = start;
current_s = s.toString();
} @Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
} });

他们将依次调用beforeTextChanged onTextChanged afterTextChanged方法,在这里修改editable内容需要有终止条件,否则很快就递归调用,栈溢出了。

android text的更多相关文章

  1. android text中显示HTML语言

    package com.example.test; import java.io.InputStream; import java.net.URL; import android.annotation ...

  2. Android Text Color设置不当造成信息不显示

    Android Text Color设置不当造成信息不显示 Android 的TextView 可以设置颜色,默认我们可以设置成 #000000 ,但某一次设置成了#00000000 ,就是多了两个0 ...

  3. React Native & Android & Text Input

    React Native & Android & Text Input react native clear input value https://stackoverflow.com ...

  4. android:text 文字阴影设置

    <SPAN style="FONT-SIZE: 16px"><TextView  android:id="@+id/text"       a ...

  5. android API之android.text.TextWatcher

    When an object of a type is attached to an Editable, its methods will be called when the text is cha ...

  6. Android笔记——Button点击事件几种写法

    Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...

  7. Android ViewPager打造3D画廊

    本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发. 网上有很多关于使用Gallery来打造3D画廊的博客,但是在关于Gallery的官方说法中表明: This cl ...

  8. Android混合开发之WebViewJavascriptBridge实现JS与java安全交互

    前言: 为了加快开发效率,目前公司一些功能使用H5开发,这里难免会用到Js与Java函数互相调用的问题,这个Android是提供了原生支持的,不过存在安全隐患,今天我们来学习一种安全方式来满足Js与j ...

  9. Android混合开发之WebView与Javascript交互

    前言: 最近公司的App为了加快开发效率选择了一部分功能采用H5开发,从目前市面的大部分App来讲,大致分成Native App.Web App.Hybrid App三种方式,个人觉得目前以Hybri ...

随机推荐

  1. iOS 手写输入法奔溃,替换隐藏键盘方法

    {   UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:se ...

  2. Node以数据块的形式读取文件

    在Node中,http响应头信息中Transfer-Encoding默认是chunked. Transfer-Encoding:chunked Node天生的异步机制,让响应可以逐步产生. 这种发送数 ...

  3. Mantis 1.2.19 on Windows Server 2012 r2 datacenter 安装及配置随笔

    一.前言 新的小团队需要搭建一个缺陷管理的工具,之前用过bugfree,感觉比较适合,但是 禅道不太适合,放弃之,于是又百度推荐的: .JTrac13.BugNet14.BugOnline15.eTr ...

  4. 解决Mac下GDB提示签名错误

    http://blog.csdn.net/powerlly/article/details/30323015

  5. javascript立即执行函数 (function(){})()

    看到一段代码: (function(){ var outer = $('#subject'); outer.find('li').on('mouseover', mouseover); })() ( ...

  6. leetcode 125

    125. Valid Palindrome Given a string, determine if it is a palindrome, considering only alphanumeric ...

  7. web.xml的首页调用struts2的action解决方法

    1,首先在struts.xml里添加如下代码:注意位置 <constant name="struts.action.extension" value="do,act ...

  8. Karma +Jasmine+ require JS进行单元测试并生成测试报告、代码覆盖率报告

    1. 关于Karma Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner). 该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuou ...

  9. JQuery 简单的文字超出部分隐藏下拉显示

    HTML代码: <body> <div class="txt_bos"><!--在每一个放置文字的class外面包一个div,以便设置动画样式用,同样 ...

  10. NetBios 的结构体详解(网络控制块NCB)

    对之前网络基础编程用到控制块NCB进行介绍(补充): 在Win32环境下,使用VC++6.0进行NetBIOS程序开发时, 需要用到nb30.h文件和netapi32.lib静态链接库.前者定义了Ne ...