【发布时间】:2021-08-03 01:41:11
【问题描述】:
这里是初学者,我正在寻找一个简单的应用程序,其中有 4 个连续的 EditText,一旦第一个 EditText 完成并且用户按下“输入”,焦点就会自动转到下一个 EditText 和第一个 EditText 消失了。 我使用了“onKey 侦听器”。但是,每当为第一个 EditText 按下 enter 键时,第一个和第二个 EditText 字段都会消失。 这是代码
public class MainActivity extends AppCompatActivity {
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText ko = findViewById(R.id.one);
final EditText ma = findViewById(R.id.two);
final EditText ko1 = findViewById(R.id.three);
final EditText xa = findViewById(R.id.four);
final TextView te = findViewById(R.id.ko);
ko.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
if(i == KeyEvent.KEYCODE_ENTER) {
ko.setVisibility(View.INVISIBLE);
ma.requestFocus();
}
return false;
}
});
ma.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent k) {
if(i == KeyEvent.KEYCODE_ENTER) {
ma.setVisibility(View.INVISIBLE);
ko1.requestFocus();
}
return false;
}
});
ko1.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent t) {
if(i == KeyEvent.KEYCODE_ENTER) {
ko1.setVisibility(View.INVISIBLE);
xa.requestFocus();
}
return false;
}
});
}
public void onClick(View v){
EditText ko = findViewById(R.id.one);
EditText ma = findViewById(R.id.two);
EditText ko1 = findViewById(R.id.three);
EditText xa = findViewById(R.id.four);
String t = ko.getText().toString();
String u = ma.getText().toString();
String x = ko1.getText().toString();
String w = xa.getText().toString();
String total = t +" "+ u +" "+x + " " +w;
Toast.makeText(this, total,Toast.LENGTH_LONG).show();
}
}
【问题讨论】:
-
你应该在请求 foucs() 之后返回 true
标签: android android-studio android-edittext