Java 是否有可能有3个相互改变的编辑文本,这3个编辑文本之间可以互换?
这是在安卓工作室 所以我有3个编辑文本,需要在所有3个文本之间互换。它们做数学运算,比如说,它们分别被标记为editText1、editText2和editText3。如果我在editText1和editText2中键入一个数字,它应该更新editText3。如果我在editText2和editText3中键入一个数字,它将更新editText1。然后,我应该能够删除任何EditText之间的任何数据,并动态更改它们,而不会锁定任何EditText实例。我已经能够在一开始就改变其中任何一个,但我最终锁定了它Java 是否有可能有3个相互改变的编辑文本,这3个编辑文本之间可以互换?,java,android,android-studio,Java,Android,Android Studio,这是在安卓工作室 所以我有3个编辑文本,需要在所有3个文本之间互换。它们做数学运算,比如说,它们分别被标记为editText1、editText2和editText3。如果我在editText1和editText2中键入一个数字,它应该更新editText3。如果我在editText2和editText3中键入一个数字,它将更新editText1。然后,我应该能够删除任何EditText之间的任何数据,并动态更改它们,而不会锁定任何EditText实例。我已经能够在一开始就改变其中任何一个,但我
是否有可能在不锁定至少一个文本的情况下使其可互换?谢谢我不知道锁定编辑文本是什么意思,但你可以尝试使用来实现这一点 例如
等等……我不知道锁定编辑文本是什么意思,但你可以尝试使用来实现这一点 例如
诸如此类……试试这样的方法
public class watcher implements TextWatcher {
EditText changeAble;
EditText Effector;
public watcher(EditText otherEffector,EditText otherEditor){
this.Effector =otherEffector;
this.changeAble = otherEditor;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//To not change the other editText in case of deleting
if(!s.toString().isEmpty()){
changeAble.setText(Integer.valueOf(s)+Integer.valueOf(Effector.getText().toString()));
}
}
@Override
public void afterTextChanged(Editable s) {
}
}
公共类MainActivity扩展了AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText editText1 = findViewById(R.id.editText);
EditText editText2 = findViewById(R.id.editText2);
EditText editText3 = findViewById(R.id.editText3);
watcher watcher = new watcher(editText2,editText1);
editText3.addTextChangedListener(watcher);
editText2.addTextChangedListener(new watcher(editText3,editText1));
}
}试试这样的方法
public class watcher implements TextWatcher {
EditText changeAble;
EditText Effector;
public watcher(EditText otherEffector,EditText otherEditor){
this.Effector =otherEffector;
this.changeAble = otherEditor;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//To not change the other editText in case of deleting
if(!s.toString().isEmpty()){
changeAble.setText(Integer.valueOf(s)+Integer.valueOf(Effector.getText().toString()));
}
}
@Override
public void afterTextChanged(Editable s) {
}
}
公共类MainActivity扩展了AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText editText1 = findViewById(R.id.editText);
EditText editText2 = findViewById(R.id.editText2);
EditText editText3 = findViewById(R.id.editText3);
watcher watcher = new watcher(editText2,editText1);
editText3.addTextChangedListener(watcher);
editText2.addTextChangedListener(new watcher(editText3,editText1));
}
}