我想在android中创建两个可编辑的id Age
101 46
102 0
103 50
。当用户在一个EditText
中输入数据时,另一个EditText
会自动变为只读,并显示输入数据的结果。
答案 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");
}
});