我的活动中有 3 个编辑文本。如果edittext长度不等于0(第一个edittext的值将来自sqlite),则第一个edittext将设置为setFocusable(false)。所以当我开始活动时,焦点将放在第二个编辑文本上。如果我单击第一个编辑文本,则会出现一个对话框,其中包含“是”和“否”按钮。如果我单击是,它将专注于第一个编辑文本,我可以编辑该值。但是当我按下手机键盘上的回车键时,它不会将我引导到第二个编辑文本。它将停留在第一个编辑文本上。我可以转到第二个编辑文本的唯一方法是按后退按钮并单击第二个编辑文本。知道如何解决这个问题吗?
这是我的编辑文本代码:
if (txtBudgetText.getText().toString().length() != 0) {
txtBudgetText.setFocusable(false);
this.txtBudgetText = (EditText) findViewById(R.id.txtBudget);
this.txtBudgetText.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// custom dialog
if ((txtBudgetText.getText().toString().length() != 0) && (txtBudgetText.isFocused()==false) ) {
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.edit_budget);
dialog.setTitle("Confirmation");
// set the custom dialog components - text, image and
// button
TextView text = (TextView) dialog
.findViewById(R.id.text);
text.setText("Are you sure you want to edit your budget?");
ImageView image = (ImageView) dialog
.findViewById(R.id.image);
image.setImageResource(R.drawable.warning);
Button dialogYESButton = (Button) dialog
.findViewById(R.id.dialogButtonYes);
// if button is clicked, close the custom dialog
dialogYESButton
.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
EditText txtBudgetText = (EditText) findViewById(R.id.txtBudget);
txtBudgetText.setFocusableInTouchMode(true);
txtBudgetText.setFocusable(true);
txtBudgetText.requestFocus();
//txtBudgetText.setText("");
dialog.dismiss();
}
});
Button dialogNOButton = (Button) dialog
.findViewById(R.id.dialogButtonNo);
// if button is clicked, close the custom dialog
dialogNOButton
.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
}
});
}