如何使用Android Studio一一填充三个编辑文本?



这段代码运行良好。我希望它更简单,例如使用nextFocusLeftnextFocusRightnextFocusForward。我的代码包含很多if和if。

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
//my buttons
Button b1, b2,b3;
//my Empty editText to fill them by my buttons one by one
EditText t1,t2,t3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

b1 = (Button) findViewById(R.id.b1);
b2 = (Button) findViewById(R.id.b2);
b3 = (Button) findViewById(R.id.b3);

t1 = (EditText) findViewById(R.id.t1);
t2 = (EditText) findViewById(R.id.t2);
t3 = (EditText) findViewById(R.id.t3);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
b3.setOnClickListener(this);


}

@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.b1:

//check if editText Empty or not
if (t1.getText().toString().equals("")){
t1.setText(t1.getText().toString() + b1.getText());
}else if (t2.getText().toString().equals("")){
t2.setText(t2.getText().toString() + b1.getText());
}else if (t3.getText().toString().equals("")){
t3.setText(t3.getText().toString() + b1.getText());
}
break;

case R.id.b2:
//check if editText Empty or not
if (t1.getText().toString().equals("")){
t1.setText(t1.getText().toString() + b2.getText());
}else if (t2.getText().toString().equals("")){
t2.setText(t2.getText().toString() + b2.getText());
}else if (t3.getText().toString().equals("")){
t3.setText(t3.getText().toString() + b2.getText());
}
break;

case R.id.b3:
//check if editText Empty or not
if (t1.getText().toString().equals("")){
t1.setText(t1.getText().toString() + b3.getText());
}else if (t2.getText().toString().equals("")){
t2.setText(t2.getText().toString() + b3.getText());
}else if (t3.getText().toString().equals("")){
t3.setText(t3.getText().toString() + b3.getText());
}
break;


}
//check Answer 
//correct answer ABC
if (t1.getText().toString().equals("A") &&
t2.getText().toString().equals("B") &&
t3.getText().toString().equals("C") ){
//if answer correct do
t1.setBackgroundResource(R.drawable.bg);
t2.setBackgroundResource(R.drawable.bg);
t3.setBackgroundResource(R.drawable.bg);

}

}
}

这看起来好一点。

@Override
public void onClick(View view) {
final Button button = findViewById(view.getId());
final String text = button.getText();
//check if editText Empty or not
if (t1.getText().toString().equals("")) {
t1.setText(t1.getText().toString() + text);
}else if (t2.getText().toString().equals("")) {
t2.setText(t2.getText().toString() + text);
}else if (t3.getText().toString().equals("")) {
t3.setText(t3.getText().toString() + text);
}
}
t1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
t2.requestFocus();
}
});

最新更新