我在MyEditText类中重写了这个方法:
@Override
public Editable getText() {
Editable s = (Editable) super.getText();
s.toString().replace("$", "").trim();
return s;
}
MainActivity类是:
public class MainActivity extends Activity implements OnClickListener {
MyEditText myEditText;
Button btn;
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.try_layout);
myEditText = new MyEditText(this);
btn = (Button) findViewById(R.id.btn);
tv = (TextView) findViewById(R.id.tv);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
tv.setText(myEditText.getText().toString());
}
}
当我在edittext中输入一些值时,点击btn没有任何文本从edittext获取为什么。
答案 0 :(得分:5)
为什么你不回到' s'在回来之前?
s = s.toString().replace("$", "").trim();
答案 1 :(得分:2)
更改此
@Override
public Editable getText() {
Editable s = (Editable) super.getText();
s.toString().replace("$", "").trim();
return s;
}
到
@Override
public Editable getText() {
Editable s = (Editable) super.getText();
return new SpannableStringBuilder(s.toString().replace("$", "").trim());
}
答案 2 :(得分:2)
Editable s = (Editable) super.getText();
s.toString().replace("$", "").trim();
return s;
我担心你在这里遇到一些问题,因为replace返回一个新的字符串,你可以尝试return.toString()。replace(“$”,“”)。terim();而不是