错误或错误DialogPicker [英] Bug or error in DialogPicker
本文介绍了错误或错误DialogPicker的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个EditText上,被点击的EditText时,它会显示一个DialogPicker。
i have a edittext, when edittext is clicked, it will show a DialogPicker.
我的目标:
static final int DATE_DIALOG_ID = 1;
private EditText txtDate;
private EditText tambah;
在这里我的code:
here my code:
txtDate = (EditText) rootView.findViewById(R.id.tanggal);
txtDate.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
DialogFragment newFragment = new DialogFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
//newFragment.setTxtDate(txtDate);
newFragment.show(ft, "dialog");
return true;
}
});
public static class SomeDialog extends DialogFragment {
final Calendar c = Calendar.getInstance();
private String[] arrMonth = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
EditText txtDate;
DatePickerDialog a;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
if (a == null) {
a = new DatePickerDialog(
getActivity(), mDateSetListener, mYear, mMonth, mDay);
}
return a;
}
public void setTxtDate(EditText a){
txtDate = a;
}
public DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
String sdate = arrMonth[mMonth] + " " + LPad(mDay + "", "0", 2) + ", " + mYear;
SomeDialog.this.txtDate.setText(sdate);
}
protected String LPad(String schar, String spad, int len) {
String sret = schar;
for (int i = sret.length(); i < len; i++) {
sret = spad + sret;
}
return new String(sret);
}
};
}
当我点击的EditText中,日期选择器会显示人数超过一次。应该如何解决?只是信息,我用这个code片段。感谢您的回答。
when i click the edittext, the datepicker will show morethan once. how i fix it?, just info, i using a fragment in this code. thanks for your answer.
推荐答案
它不是错误。 onTouchListenr
调用ontouch 的EditText
的许多倍。就像当 MotionEvent.ACTION_DOWN和MotionEvent.ACTION_UP
。
所以你需要改变你的code像
Its not the Bug. onTouchListenr
calls many times ontouch of EditText
. like when MotionEvent.ACTION_DOWN and MotionEvent.ACTION_UP
.
so you need to change your code like
public boolean onTouch(View arg0, MotionEvent arg1) {
if (arg1.getAction() == MotionEvent.ACTION_DOWN) {
DialogFragment newFragment = new DialogFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
// newFragment.setTxtDate(txtDate);
newFragment.show(ft, "dialog");
}
return true;
}
这篇关于错误或错误DialogPicker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文