读书人

Android EditText一部分特殊功能

发布时间: 2012-07-16 15:44:59 作者: rapoo

Android EditText部分特殊功能

?

?http://06peng.com/tb.php?t=79&extra=456de

1、给EditText加上文字选中功能,比如微博的插入话题功能。点击“插入话题”按钮的时候,“#请插入话题名称#”在两个#号中间的内容处于选中状态,用户一点击即消失。代码如下:

Java代码
    ????
  1. text.setText("#请插入话题名称#");??????
  2. Editable editable = text.getText();??????
  3. Selection.setSelection(editable,?1, editable.length() -?1);??

2、如果想默认进入一个Activity时,唯一的一个edittext先不要获得焦点。在EditText前面加上一个没有大小的Layout:

XML/HTML代码
    ????
  1. <LinearLayout??????
  2. ????android:focusable="true"?android:focusableInTouchMode="true"??????
  3. ????android:layout_width="0px"?android:layout_height="0px"/>??

3、输入文字的时候,如果想限制字数,并提示用户,可用以下方法:

Java代码
    ????
  1. text.addTextChangedListener(new?TextWatcher() {??????
  2. ??????????????????
  3. ????????????@Override??????
  4. ????????????public?void?onTextChanged(CharSequence s,?int?start,?int?before,?int?count) {??????
  5. ???????????????? textCount = textCount + count - before;??????
  6. ?????????????????if?(textCount <=?140) {??????
  7. ?????????????????????? writeWordDes.setText("可输入字数:"?+ (140?- textCount));??????
  8. ?????????????????????? writeWordDes.setTextColor(getResources().getColor(R.color.solid_black));??????
  9. ???????????????? }?else?{??????
  10. ???????????????????? writeWordDes.setText("超出字数:"?+ (textCount -?140));??????
  11. ???????????????????? writeWordDes.setTextColor(getResources().getColor(R.color.solid_red));??????
  12. ???????????????? }??????
  13. ????????????}??????
  14. ??????????????????
  15. ????????????@Override??????
  16. ????????????public?void?beforeTextChanged(CharSequence s,?int?start,?int?count,??????
  17. ????????????????????int?after) {??????
  18. ??????????????????????
  19. ????????????}??????
  20. ??????????????????
  21. ????????????@Override??????
  22. ????????????public?void?afterTextChanged(Editable s) {??????
  23. ??????????????????????
  24. ????????????}??????
  25. ????????});??????
  26. ????}??

4、让EditText不可输入,比如超过一定字数后,不让用户再输入文字:

Java代码
    ????
  1. text.setFilters(new?InputFilter[] {????????
  2. ?????????new?InputFilter() {????????
  3. ????????????????public?CharSequence filter(CharSequence source,?int?start,????????
  4. ????????????????????????int?end, Spanned dest,?int?dstart,?int?dend) {????????
  5. ????????????????????return?source.length() <?1?? dest.subSequence(dstart, dend) :?"";????????
  6. ????????????????}????????
  7. ????????????}????????
  8. ????????}); ? ?

读书人网 >Android

热点推荐