アクティビティに3つのエディットテキストがあります。編集テキストの長さが0に等しくない場合、最初の編集テキストはsetFocusable(false)になります(最初の編集テキストの値はsqliteからのものになります)。したがって、アクティビティを開始すると、2番目のエディットテキストに焦点が当てられます。最初のエディットテキストをクリックすると、[はい]と[いいえ]ボタンのダイアログが表示されます。[はい]をクリックすると、最初の編集テキストにフォーカスが移り、値を編集できます。しかし、電話のキーボードのEnterキーを押しても、2番目のエディットテキストに移動しません。最初のエディットテキストに残ります。2番目のエディットテキストに移動する唯一の方法は、戻るボタンを押して2番目のエディットテキストをクリックすることです。どうすればこの問題を解決できますか?
これがedittextの私のコードです:
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();
}
}
});
}