最近版本迭代的新增收货地址模块出现地址填写时点击换行,然后网络提交数据到后台,在地址列表查看地址时,也出现换行的问题。
问题效果图:
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 > ; i--){ if(s.subSequence(i-, i).toString().equals("\n"))
s.replace(i-, i, "");
}
}
});