私はAndroidアプリのアクティビティでいくつかのEditTextを取得しました。日付を選択するためのものは完全に正常に動作し、日付ピッカーのダイアログが表示され、日付を選択し、その日付がそのEditTextに設定されます。問題はありません。日付ピッカーが間違った編集テキストで再び開きます
後でという別のEditTextを開いて、テキスト(「leggtil」という名前)を入力すると、日付ピッカーダイアログが再度表示されるという問題があります。誰が何が間違っているのか分かりますか?フォーカスが最初のEditTextから削除されたときに起因するsetOnFocusChangeListener
メソッドが呼び出される示す第二のEditTextクリック日付ピッカーで
private DatePickerDialog velgdato;
private SimpleDateFormat dateFormat;
private EditText dato;
private Calendar mycalendar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lag_liste);
dato = (EditText)findViewById(R.id.laglistedato);
final EditText leggtil = (EditText)findViewById(R.id.laglisteadditem);
mycalendar = Calendar.getInstance();
final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
mycalendar.set(Calendar.YEAR, year);
mycalendar.set(Calendar.MONTH, monthOfYear);
mycalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
oppdater();
}
};
dato.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
new DatePickerDialog(LagListe.this, date, mycalendar.get(Calendar.YEAR), mycalendar.get(Calendar.MONTH), mycalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
leggtil.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (leggtil.getText().toString() != null) {
Toast.makeText(getApplicationContext(), leggtil.getText().toString(), Toast.LENGTH_SHORT).show();
return true;
}
else
return false;
}
});
}
private void oppdater() {
String format = "MM/dd/yy";
SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.US);
dato.setText(sdf.format(mycalendar.getTime()));
}
ありがとうございました。問題が修正されました。 :) 私は今、 'レグチル' EditTextで新しい問題を抱えています。別の質問として投稿するべきかもしれませんが、あなたがバットをすぐに知っているなら、助けてください。 ^^それは本当に奇妙なことですが、バックスペースをクリックするとトーストが表示され、トーストは決して画面から離れませんか?トーストはテキストだけで何かをする前のテストですが、それでも問題はないことを知る必要があります。 – OhDannyBoy
@OhDannyBoy:onKeyメソッドは、ユーザがキーボードの任意のキーを押すたびに実行されます。トーストメッセージは常に表示されます。トーストメッセージを表示したいときは? –
ああ、それは理にかなっています。Duh、私はそれを知っていたはずです。とにかく、ユーザーが自分のものを入力し終わったら、トーストを表示して、Enterアイコンをクリックします。私は代わりに 'onClickListener'を使うべきですか? – OhDannyBoy