安卓EditText输入时自动编号
来源:互联网 发布:如何修改tomcat端口 编辑:程序博客网 时间:2024/05/17 06:44
最近在做一个安卓文字输入框,发现有时候需要对每一行文字进行编号,手动输入编号比较麻烦,EditText控件又没有列表功能。于是做了这一个处理,在行首第一个字输入空格就自动编号。删除行时自动重新编号。
效果如图:(用法很简单,在换行后按一下空格就自动显示编号。不按空格不编号)
代码如下:
myText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// 输入的内容变化的监听
Editable editable = myText.getText();
String s1=editable.toString();
//自动添加索引
indexText(myText,editable,s1);
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}});
public static void indexText(EditText etxt,Editable eab,String s1)
{
//添加自动编号。
//String strlastSet="";
int pos=etxt.getSelectionStart(); //前面是换行或第一行,后面是空格。
int nLen=s1.length();
if(pos>1 && pos<=nLen)
{
char[] chBuf=new char[8];
eab.getChars(pos-2, pos, chBuf, 0);
if(chBuf[1]=='\n' //删除
||chBuf[0]=='\n'
||chBuf[0]=='\n')
{
pos=0;
}
}
if(nLen>0 && pos==0||pos==1)//&& s1.equals(strlastSet)==false)
{
int nSel = etxt.getSelectionStart();
int nCount=s1.length();
int n=-1;
int nl=0;
int nline=-1;
do
{
nline++;
char c=s1.charAt(n+1);
if(c=='\n') //空行,号数不变。
{
nline--;
}
else if(c==' ') //空格开始的自动编号。
{
nl++;
c=(char) (0x2776+(nline%10));
s1=s1.substring(0,n+1)+String.valueOf(c)+s1.substring(n+2);
//nCount++;
//if(nSel>n)
//nSel++;
}
else if((c<0x2460||c>0x2469)&&(c<0x2776||c>0x277f)) //不是编号。重新开始。
{
nline=-1;
}
else //检查是否需要重新编号。
{
if(c!=(char) (0x2776+(nline%10))) //
{
nl++;
c=(char) (0x2776+(nline%10));
s1=s1.substring(0,n+1)+String.valueOf(c)+s1.substring(n+2);
}
}
n=s1.indexOf('\n',n+1);
}while(n>0 && n<nCount-1);
if(nl>0)
{
//strlastSet=s1;
etxt.setText(s1); //会导致 再次调用 onTextChanged
etxt.setSelection(nSel);
//Log.d(TAG,s1);
}
}
}
源码下载网站:http://www.nnv1.com/source.htm 在绿色区域其他源码中找到"安卓TextEditer自动编号"下载源码。
- 安卓EditText输入时自动编号
- 安卓EditText输入时自动填充
- 安卓设置EditText的输入框不自动弹出以及设置EditTEXT在输入法上方
- 安卓 edittext禁止表情图片的输入
- 安卓EditText输入非中文
- 安卓开发EditText禁止中文输入
- 安卓控件使用系列5:EditText输入表情图片
- 安卓开发如何判断EditText是否有输入?
- 安卓简单开发-Edittext限制输入文本
- 安卓edittext默认显示数字键盘,但还能能输入字母
- 安卓EditText限制输入类型的一些技巧
- 安卓之自动输入提示
- 【安卓自动文本输入识别】
- EditText自动弹出输入框
- 安卓使用EditText进入一个新页面时自动获取焦点弹出输入法界面解决办法
- 安卓不可缺少的自动填充EditText。
- 如何屏蔽EditText自动获取聚焦时弹出输入框
- Activity打开时EditText不自动获取输入板
- Python Basic
- JavaWeb学习总结(二)——Tomcat服务器学习和使用(二)
- 日常笔记2
- hadoop学习4
- C++参考demo-dll
- 安卓EditText输入时自动编号
- 基于Swift的iOS应用程序开发:以Base64字符串形式上传文件——从iOS选择文件并上传
- Java 静态语句块、语句块、构造函数执行顺序
- Android 开发常用的adb命令
- Android Fragment接口传值
- CODECHEF Sereja and Commands
- javaweb学习总结(四)——Http协议
- 数字签名(2):DSA
- Hashmap and Java.io PrintWriter