Android onDateSet不';不要将日期放入我动态放入listview的EditText中

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

我有一个包含3个EditText的列表视图。一个EditText是一个日期字段,我在该字段上放置了一个onClickListener以打开datePickerDialog。我的问题是,当我选择一个日期时,它不会将文本放回编辑文本中。有人知道如何解决这个问题吗

这是我的代码:

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;
编辑文本数据;
内部位置;
}
}