3

我在两个不同的活动中有多个TextViewEditText领域。当我进入我的编辑屏幕时,我可以输入值并TextViews更新相应的值。问题是,如果我只编辑一个TextView,那么另一个TextViews会变为空白,只有我编辑过的才会显示正确的信息。有什么建议么?附上一段代码。所以基本上,我只希望在TextView更改EditText字段时更改信息,而不是在EditText刚刚选择或滚动时更改信息。

EditText代码:

editTextName.setOnKeyListener(new View.OnKeyListener() {
    public boolean onKey(View v1, int keyCode1, KeyEvent event1) {
        if ((event1.getAction() == KeyEvent.ACTION_DOWN) && (keyCode1 == KeyEvent.KEYCODE_ENTER)) {
            getSharedPreferences("myprefs", 0).edit().putString("editTextName", editTextName.getText().toString()).commit();
            return true;
        }
        return false;
    }
});

对应的TextView

String newName = getSharedPreferences("myprefs", 0).getString("editTextName", this.getString(R.string.name) );
textViewName.setText("Name: "+newName);
4

1 回答 1

0

我只是不明白你想说什么,但我想你想知道edittext中的文本何时改变,因为有一个接口,所以你使用这个代码:--

     editTextName.addTextChangedListener(new TextWatcher(){
     public void afterTextChanged(Editable s) {
        if ((event1.getAction() == KeyEvent.ACTION_DOWN) && (keyCode== KeyEvent.KEYCODE_ENTER)) {
        getSharedPreferences("myprefs", 0).edit().putString("editTextName", editTextName.getText().toString()).commit();
        return true;
    }
    public void beforeTextChanged(CharSequence s, int start, int count, int after){}
    public void onTextChanged(CharSequence s, int start, int before, int count){}
}); 

});

于 2012-10-13T05:55:08.793 回答