Java 在另一个EditText中更改文本时使EditText只读

Java 在另一个EditText中更改文本时使EditText只读,java,android,Java,Android,我想在android中创建两个可编辑的EditText。当用户在一个EditText中输入数据时,另一个EditText自动变为只读并显示输入数据的结果。使用此代码。并应用您的逻辑,首先检查此EditText是否为空,然后调用此代码 editText.setEnabled(false); 假设您的editText为空,然后像这样检查 if(editText.getText().toString.isEmpty()){ editText.setEnabled(false); } 首先设置一

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

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

editText.setEnabled(false);
假设您的editText为空,然后像这样检查

if(editText.getText().toString.isEmpty()){
 editText.setEnabled(false);
 }
首先设置一个:-

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>

希望这对您有所帮助。

使用此选项,并在
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) {

                }
            });

postTextChanged
中的
setEnabled false或true
。根据您的需要做任何您想做的事情

您可以尝试以下方法:

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
,并在键入其中一个文本时启用/禁用它们。 这样应该没问题。

试试这个

当用户希望将数据放在一个editText中时,请将其放在另一个editText中 自动动态变为只读以显示结果

使用文本观察程序编辑文本,并在用户键入first 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");

            } 
});
请尝试以下代码 考虑两个文本e1和e2

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

    }
});

@ZaidQureshi请明确您的要求。当然,我会根据.setFocusableInTouchMode()调用的文档为您提供帮助。setFocusableInTouchMode(true)使调用.setFocusable(true)变得不必要。即只需调用etAdd.setFocusableInTouchMode(true)@ZaidQureshi请尝试此代码或在同一edittext的覆盖方法中,您可以使用edit.setEnabled(true)启用/禁用edittext;默认情况下,您将所有edittext设置为enable=“false”
 e1.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
       e2.setEnabled(false);
        return false;

    }
});