我们如何在EditText中覆盖getText方法?

时间:2014-05-30 08:27:10

标签: android android-edittext

我在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获取为什么。

3 个答案:

答案 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();而不是