У меня есть адаптер, в котором динамическая форма генерируется с использованием регистра переключателя.все дела работают, но в случае CASE: «NepaliDate», дата устанавливается только во второй клик.Вот мой случай:
case "NEPALI_DATE":
holder.et = new EditText(context);
list.add(holder.et);
holder.et.setInputType(InputType.TYPE_CLASS_DATETIME);
holder.sifarismainLayout.addView(holder.et);
holder.et.setFocusable(false);
holder.et.setCursorVisible(false);
holder.et.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar now = Calendar.getInstance();
int current_month = now.get(Calendar.MONTH) +1;
Log.e("currMonth", String.valueOf(current_month));
if(current_month == 4 || current_month == 5 || current_month == 6 || current_month == 7 ||
current_month == 8 || current_month == 9 || current_month == 10 ||
current_month == 11 || current_month == 12) {
com.hornet.dateconverter.DatePicker.DatePickerDialog dpd = com.hornet.dateconverter.DatePicker.DatePickerDialog.newInstance(chooseSifarisAdapter.this, now.get(Calendar.YEAR) + 57, now.get(Calendar.MONTH) - 3,
now.get(Calendar.DAY_OF_MONTH));
dpd.show(manager, "Datepickerdialog");
}
else {
com.hornet.dateconverter.DatePicker.DatePickerDialog dpd = com.hornet.dateconverter.DatePicker.DatePickerDialog.newInstance(
chooseSifarisAdapter.this,
now.get(Calendar.YEAR) + 57,
now.get(Calendar.MONTH) + 9,
now.get(Calendar.DAY_OF_MONTH)
);
dpd.show(manager, "Datepickerdialog");
}
holder.et.setText(nepaliDate);
});
break;
Чтобы использовать com.hornet.dateconverter.DatePicker.DatePickerDialog, я должен реализовать метод, который содержит метод переопределения следующим образом:
@Override
public void onDateSet(com.hornet.dateconverter.DatePicker.DatePickerDialog datePickerDialog, int i, int i1, int i2) {
i1 = i1 + 1;
String startdate;
startdate = (i + "/" + i1 + "/" + i2);
DateConverter dc = new DateConverter();
Model outputOfConversion = dc.getEnglishDate(i, i1, i2);
int year = outputOfConversion.getYear();
int month = outputOfConversion.getMonth();
int day = outputOfConversion.getDay();
month = month + 1;
startDate = (year + "-" + month + "-" + day);
nepaliDate = i + "-" + i1 + "-" + i2;
ИспользованиеКод выше значение устанавливается только на второй клик.Предположим, что я выбрал дату, эта дата не будет видна в EditText в точное время, скорее, дата будет нажата во второй раз, когда я нажимаю EditText.Так как я использовал держатель, следует использовать точный текст редактирования.пожалуйста, помогите мне?