2016-04-17 6 views
1

alsgeht Mein Code in BaseAdapter Mit picker in BaseAdapter für ein Fragment

date.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      ((Fragment)UserRequests.this.context).showDialog(999);//Error 
     } 
    }); 

folgt eine Datumsauswahl zeigen, dass wir den Code unten

protected Dialog onCreateDialog(int id) { 
    // TODO Auto-generated method stub 
    if (id == 999) { 
     return new DatePickerDialog(context, myDateListener, year, month, day); 
    } 
    return null; 
} 

private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) { 
     // TODO Auto-generated method stub 
     // arg1 = year 
     // arg2 = month 
     // arg3 = day 
     showDate(arg1, arg2+1, arg3); 
    } 
}; 

private void showDate(int year, int month, int day) { 
    date.setText(new StringBuilder().append(day).append("/") 
      .append(month).append("/").append(year)); 
} 

Ich habe zwei Probleme mit diesem Code benötigen. Als erstes möchte ich einen Datepicker in einem Fragment namens UserRequests anzeigen. Was ich nicht kann. Ich habe es wie folgt versucht.

Zweitens ist eine Warnung, dass onCreateDialog Methode nie verwendet wird. Bitte erkläre mich. Wie man das löst. Danke im Voraus.

Antwort

0

Sie müssten UserRequests von DialogFragment erweitern und OnCreateDialog in der folgenden Weise überschreiben.

@Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
    //do something 
    } 

Weitere Informationen sind in den documentation

+0

Eine Klasse mit dem Namen FeedListAdapter erstreckt BaseAdapter und UserRequest ist eine Klasse, das Fragment erstreckt. Von der BaseAdapter-Klasse muss ich den DatePicker in UserRequest Fragment erhalten. Und noch eine Frage können wir Bundle in der Klasse BaseAdapter erweitern. – Karrthik

+0

Sie können eine andere Klasse (zB DatePickerFragment) in UserRequest erstellen, die DialogFragment erweitert. Innerhalb von showDialog können Sie eine Instanz von DatePickerFragment erstellen und verwenden. Bündel wird nicht vom BaseAdapter übergeben. Aber Sie können es bei Bedarf erstellen und handhaben. –

Verwandte Themen