最近版本迭代的新增收貨地址模塊出現地址填寫時點擊換行,然后網絡提交數據到后台,在地址列表查看地址時,也出現換行的問題。
問題效果圖:
1、分析原因
用Google的DHC工具進行網絡模擬請求,發現返回數據結果如下:
2、得出結果
是因為我輸入地址點擊換行,沒換一次就會增加一個\n,那么,就非常好處理了。
3、解決方法
在設置TextView文字的時候,用字符串工具replace過濾一下就OK了!
TextView tv=(TextView)findViewById(R.id.tView); tv.setText(shipAddress.getFullAddress().replace("\n", ""));
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("\n")) s.replace(i-1, i, ""); } } });