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