使EditText只读取另一个EditText中的文本更改

时间:2017-12-11 10:10:11

标签: java android

我想在android中创建两个可编辑的id Age 101 46 102 0 103 50 。当用户在一个EditText中输入数据时,另一个EditText会自动变为只读,并显示输入数据的结果。

6 个答案:

答案 0 :(得分:1)

尝试以下代码

考虑两个EditText e1和e2

 e1.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
       e2.setEnabled(false);
        return false;

    }
});

答案 1 :(得分:0)

使用此代码。并应用您的逻辑,首先检查此EditText是否为空,调用此代码

editText.setEnabled(false);

假设您的editText为空,请按此检查

if(editText.getText().toString.isEmpty()){
 editText.setEnabled(false);
 }

答案 2 :(得分:0)

首先设置: -

edittext.setFocusable(false);
 edittest.setFocusableInTouchMode(false);

在XMl文件中设置 android:focusable =“false”

<EditText
        android:id="@+id/EditTextInput"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:focusable="false"
        android:gravity="right"
        android:cursorVisible="true">
    </EditText>

然后在edittext的OnStateChangeListener中你会去 android:focusable =“true”你的下一个Edittext

editText1.addTextChangedListener(new TextWatcher() {

   @Override
   public void afterTextChanged(Editable s) {}

   @Override    
   public void beforeTextChanged(CharSequence s, int start,
     int count, int after) {

   }

   @Override    
   public void onTextChanged(CharSequence s, int start,
     int before, int count) {
      if(s.length() != 0){
         edittext2.setFocusable(true);
         edittest2.setFocusableInTouchMode(true);
     }   
   }
  });

希望这会对你有所帮助。

答案 3 :(得分:0)

使用此功能,并在onTextChanged中设置editText中的数据,您将获得所需的结果。

yourEditText.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

                }

                @Override
                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

                }

                @Override
                public void afterTextChanged(Editable editable) {

                }
            });
setEnabled false or true中的

afterTextChanged。根据您的需要做任何你想做的事情

答案 4 :(得分:0)

您可以尝试这样的事情:

editText1.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                editText2.setEnabled(false);
                editText2.setText(editText1.getText().toString());
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });

将文本观察程序设置为editText,并在键入其中一个时启用/禁用它们。 以这种方式应该没问题。

答案 5 :(得分:0)

试试这个......

  

当用户想要将数据放在另一个editText中时   自动变为只读以显示结果

将文本观察器用于EditText,并在用户在第一个EditText上键入时启用/禁用其他编辑文本

EditText editText1 = (EditText)findViewById(R.id.text1);
EditText editText2 = (EditText)findViewById(R.id.text2);

editText1 .addTextChangedListener(new TextWatcher() {
    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // TODO Auto-generated method stub
            }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    editText2.setEnabled(false);

    //calculate and display result of that entered data
    editText2.setText("your result");

            } 
});