仿知乎EditText 输入@+用户名效果
来源:互联网 发布:origin8软件 编辑:程序博客网 时间:2024/05/29 14:40
et_content.setOnKeyListener(new EditKeyListener());
private class EditKeyListener implements View.OnKeyListener{ @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_DEL && event.getAction() == KeyEvent.ACTION_DOWN) { //当为删除键并且是按下动作时执行 int selectionStart = et_content.getSelectionStart(); int lastPos = 0; int l = 0; for (int i = 0; i < be.size(); i++) { //循环遍历整个输入框的所有字符 if ((lastPos = et_content.getText().toString().indexOf("@"+be.get(i).getRealName(), lastPos)) != -1) { if (selectionStart != 0 && selectionStart >= lastPos && selectionStart <= (lastPos + ("@"+be.get(i).getRealName()).length())) { String sss = et_content.getText().toString(); String s1 = sss.substring(0, lastPos); String s2 = sss.substring(lastPos +("@"+ be.get(i).getRealName()).length()); String s3 = s1+s2; be.remove(i); //删除对应实体 et_content.setText(s3); for (int j = 0; j <be.size() ; j++) { if(s3.contains("@"+ be.get(j).getRealName())){ SpannableString ss = new SpannableString(s3); ss.setSpan(new ForegroundColorSpan(AskAcktivity.this.getResources() .getColor(R.color.title_bar_bg)), 0, l+("@"+ be.get(j).getRealName()).length()+1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); et_content.setText(ss); //字符串替换,删掉符合条件的字符串 l += ("@"+ be.get(j).getRealName()).length(); }else{ et_content.setText(s3); } } et_content.setMovementMethod(LinkMovementMethod.getInstance()); et_content.setSelection(lastPos); //设置光标位置 return true; } } else { lastPos += ("@" + be.get(i).getRealName()).length(); } } } return false; }}
阅读全文
1 0
- 仿知乎EditText 输入@+用户名效果
- EditText文字输入飞入效果
- Android EditText 多行输入滚动效果。
- EditText输入文字带下划线的效果
- Android5.0风格EditText输入框效果
- Android EditText 多行输入滚动效果。
- scrollview+edittext实现批量输入效果
- edittext登录界面,用户名修改,密码自动删除效果
- android中EditText插入用户名(块)效果(EditText插入图片)
- android中EditText插入用户名(块)效果(EditText插入图片)
- Android自定义EditText,实现分割输入内容效果
- Android自定义EditText,实现分割输入内容效果
- EditText设置最大输入长度并设置密码效果
- 自定义EditText实现输入错误变红的效果
- 自定义EditText实现未输入文字动画提醒效果
- 【Android 界面效果12】EditText中的多行输入问题
- Android 自定义 EditText 达到从右边输入的效果
- Android—Android中监听EditText文本输入,实现修改用户名,清除密码
- Oracle断电恢复ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [44437], [17323], [18486], [
- 详解Java反射各种应用
- Linux查看CPU和内存使用情况
- 巧妙的邻接表(数组实现)
- android 6.0动态权限添加
- 仿知乎EditText 输入@+用户名效果
- 如何生成二维码?
- swift网络请求封装
- 宏定义寄存器设置函数
- makefile伪目标
- 国庆将至,教你一招过国庆
- Hibernate SQL
- Kotlin之let,apply,with,run函数区别
- 汉字和笔画数