zoukankan      html  css  js  c++  java
  • Android 解决Android的TextView和EditText换行问题

    最近版本迭代的新增收货地址模块出现地址填写时点击换行,然后网络提交数据到后台,在地址列表查看地址时,也出现换行的问题。

    问题效果图:

    1、分析原因

    用Google的DHC工具进行网络模拟请求,发现返回数据结果如下:

    2、得出结果

    是因为我输入地址点击换行,没换一次就会增加一个 ,那么,就非常好处理了。

    3、解决方法

    在设置TextView文字的时候,用字符串工具replace过滤一下就OK了!

    TextView tv=(TextView)findViewById(R.id.tView);
    tv.setText(shipAddress.getFullAddress().replace("
    ", ""));

    4、换行问题扩展

    ①要想不换行直接设置TextView的属性:android:singleLine="true"(换行则false)

    动态代码设置:

    tv.setSingleLine(true);

    ②换行还可以设置TextView的宽度自适应类型:android:layout_width="wrap_content"

    ③捕捉按回车键不换行

    class MyTextView extends EditText
    {
        ...
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event)
        {
            if (keyCode==KeyEvent.KEYCODE_ENTER) 
            {
                // Just ignore the [Enter] key
                return true;
            }
            // Handle all other keys in the default way
            return super.onKeyDown(keyCode, event);
        }
    }

    ④设置监听在输入后进行过滤处理

    myEditTextObject.addTextChangedListener(new TextWatcher() {
            public void onTextChanged(CharSequence s, int start, int before, int count) {
    
            }
    
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
    
            }
    
            public void afterTextChanged(Editable s) {
                for(int i = s.length(); i > 0; i--){
    
                    if(s.subSequence(i-1, i).toString().equals("
    "))
                         s.replace(i-1, i, "");
                }
            }
        });
  • 相关阅读:
    将网址设为首页和添加到收藏夹(JS脚本)
    窗体居中一句话
    链接跳转JS
    工厂学习心得(三)Asp.net
    工厂模型学习心得(一)(ASP.Net)
    ubuntu终端快捷键
    Win7锐捷:无法找到网卡或系统未完成网卡初始化操作.请稍后再尝试认证
    Xming的使用
    在Windows上建立ssh服务器
    Windows XP循环启动
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/5916859.html
Copyright © 2011-2022 走看看