最近版本迭代的新增收貨地址模組出現地址填寫時點選換行,然後網路提交資料到後臺,在地址列表檢視地址時,也出現換行的問題。
問題效果圖:
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"
③捕捉按Enter鍵不換行
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, ""); } } });