Android onDateSet不';不要将日期放入我动态放入listview的EditText中
我有一个包含3个EditText的列表视图。一个EditText是一个日期字段,我在该字段上放置了一个onClickListener以打开datePickerDialog。我的问题是,当我选择一个日期时,它不会将文本放回编辑文本中。有人知道如何解决这个问题吗 这是我的代码:Android onDateSet不';不要将日期放入我动态放入listview的EditText中,android,listview,datepicker,android-edittext,adapter,Android,Listview,Datepicker,Android Edittext,Adapter,我有一个包含3个EditText的列表视图。一个EditText是一个日期字段,我在该字段上放置了一个onClickListener以打开datePickerDialog。我的问题是,当我选择一个日期时,它不会将文本放回编辑文本中。有人知道如何解决这个问题吗 这是我的代码: public class BezoekverslagAfsprakenListAdapter extends ArrayAdapter<Afspraak> implements OnDateSetListener
public class BezoekverslagAfsprakenListAdapter extends ArrayAdapter<Afspraak> implements OnDateSetListener{
public Context context;
public List<Afspraak> afspraken;
ViewHolder holder;
DatePickerDialog dialog;
int dag, maand, jaar;
DatePicker picker;
public BezoekverslagAfsprakenListAdapter(Activity context, List<Afspraak> afspraken){
super(context, R.layout.afspraak_item, afspraken);
this.context = context;
this.afspraken = afspraken;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if(convertView == null) {
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.afspraak_item, null, false);
holder = new ViewHolder();
holder.afspraak = (EditText)convertView.findViewById(R.id.et_afspraak);
holder.wie = (EditText)convertView.findViewById(R.id.et_wie);
holder.datum = (EditText)convertView.findViewById(R.id.et_datumAfspraak);
holder.position = position;
convertView.setTag(holder);
holder.datum.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
// your click actions go here
Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
dialog = new DatePickerDialog(context, position, null, mYear, mMonth, mDay);
dialog.show();
}
});
}
else{
holder = (ViewHolder) convertView.getTag();
}
return convertView;
}
static class ViewHolder {
EditText afspraak;
EditText wie;
EditText datum;
int position;
}
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
monthOfYear = monthOfYear +1;
holder.datum.setText(dayOfMonth+"-"+monthOfYear+"-"+year);
}
公共类BezoekVerslagafsRakenListAdapter扩展ArrayAdapter实现OnDateSetListener{
公共语境;
公共名单;
视窗座;
日期选择器对话框;
内特达格、马兰、加尔;
日期选择器;
公共BezoekVerslagafsRakenListAdapter(活动上下文,列表afsRaken){
super(上下文,R.layout.afspraak_项目,afspraken);
this.context=上下文;
this.afspraken=afspraken;
}
@凌驾
公共视图getView(最终int位置、视图转换视图、视图组父级){
if(convertView==null){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
convertView=充气机。充气(R.layout.afspraak_项,空,假);
holder=新的ViewHolder();
holder.afspraak=(EditText)convertView.findViewById(R.id.et_afspraak);
holder.wie=(EditText)convertView.findViewById(R.id.et_-wie);
holder.datum=(EditText)convertView.findViewById(R.id.et_datumAfspraak);
holder.position=位置;
convertView.setTag(支架);
holder.datum.setOnClickListener(新的OnClickListener()
{
@凌驾
公共void onClick(视图)
{
//您的单击操作将转到此处
Calendar c=Calendar.getInstance();
int mYear=c.get(日历年);
int mMonth=c.get(日历月);
int mDay=c.get(日历,月的第天);
dialog=newdatepickerdialog(上下文、位置、null、mYear、mMonth、mDay);
dialog.show();
}
});
}
否则{
holder=(ViewHolder)convertView.getTag();
}
返回视图;
}
静态类视窗夹{
编辑文本;
编辑文本wie;
编辑文本数据;
内部位置;
}
@凌驾
公共无效onDateSet(日期选择器视图,整数年,整数月,
整数(每月的第几天){
//TODO自动生成的方法存根
monthOfYear=monthOfYear+1;
holder.datum.setText(月日+“-”+月日+“-”+年);
}
}我已经自己修好了 在我的活动中,我添加了以下方法:
DatePickerDialog.OnDateSetListener dateListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
myYear = year;
myMonth = monthOfYear;
myDay = dayOfMonth;
myMonth = myMonth +1;
bezoekverslagAfsprakenListAdapter.getItem(bezoekverslagAfsprakenListAdapter.globalPosition).setDatum(myDay +"-"+myMonth+"-"+myYear);
bezoekverslagAfsprakenListAdapter.notifyDataSetChanged();
}};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this,dateListener,myYear, myMonth,myDay );
}
return null;
}
和我的ListAdapter代码:
public class BezoekverslagAfsprakenListAdapter extends ArrayAdapter<Afspraak> /*implements OnDateSetListener*/{
public Context context;
public List<Afspraak> afspraken;
ViewHolder holder;
DatePickerDialog dialog;
int dag, maand, jaar;
DatePicker picker;
public int mYear;
public int mMonth;
public int mDay;
static final int DATE_DIALOG_ID = 0;
int globalPosition;
String dateSet;
//private DatePickerDialog.OnDateSetListener mDateSetListener;
public BezoekverslagAfsprakenListAdapter(Activity context, List<Afspraak> afspraken){
super(context, R.layout.afspraak_item, afspraken);
this.context = context;
this.afspraken = afspraken;
}
public void setDateSet(String dateSet) {
this.dateSet = dateSet;
holder.datum.setText(dateSet);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if(convertView == null) {
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.afspraak_item, null, false);
holder = new ViewHolder();
holder.afspraak = (EditText)convertView.findViewById(R.id.et_afspraak);
holder.wie = (EditText)convertView.findViewById(R.id.et_wie);
holder.datum = (EditText)convertView.findViewById(R.id.et_datumAfspraak);
holder.datum.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
((Activity) BezoekverslagAfsprakenListAdapter.this.context)
.showDialog(DATE_DIALOG_ID);
globalPosition = position;
}
});
convertView.setTag(holder);
}
else{
holder = (ViewHolder) convertView.getTag();
}
holder.position = position;
holder.datum.setText(afspraken.get(position).getDatum());
return convertView;
}
static class ViewHolder {
EditText afspraak;
EditText wie;
EditText datum;
int position;
}
公共类BezoekVerslagafsRakenListAdapter扩展ArrayAdapter/*实现OnDateSetListener*/{
公共语境;
公共名单;
视窗座;
日期选择器对话框;
内特达格、马兰、加尔;
日期选择器;
公共内耳;
公共卫生;
公共国际日;
静态最终整数日期对话框ID=0;
int全局定位;
字符串日期集;
//私有DatePickerDialog.OnDateSetListener mDateSetListener;
公共BezoekVerslagafsRakenListAdapter(活动上下文,列表afsRaken){
super(上下文,R.layout.afspraak_项目,afspraken);
this.context=上下文;
this.afspraken=afspraken;
}
public void setDateSet(字符串日期集){
this.dateSet=日期集;
holder.datum.setText(日期集);
}
@凌驾
公共视图getView(最终int位置、视图转换视图、视图组父级){
if(convertView==null){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
convertView=充气机。充气(R.layout.afspraak_项,空,假);
holder=新的ViewHolder();
holder.afspraak=(EditText)convertView.findViewById(R.id.et_afspraak);
holder.wie=(EditText)convertView.findViewById(R.id.et_-wie);
holder.datum=(EditText)convertView.findViewById(R.id.et_datumAfspraak);
holder.datum.setOnClickListener(新的OnClickListener()
{
@凌驾
公共void onClick(视图)
{
((活动)BezoekverslagAfsprakenListAdapter.this.context)
.showDialog(日期对话框ID);
全局位置=位置;
}
});
convertView.setTag(支架);
}
否则{
holder=(ViewHolder)convertView.getTag();
}
holder.position=位置;
holder.datum.setText(afspraken.get(position.getDatum());
返回视图;
}
静态类视窗夹{
编辑文本;
编辑文本wie;
编辑文本数据;
内部位置;
}
}