2016-03-22 19 views
0

3 sekme/parça içeren bir etkinliğim var, bunlardan biri bir düğme tıklamasıyla açılan bir tarihçeye sahip. Tarih seçici çalışır ancak değişiklikten sonra bazı verileri otomatik olarak yüklemek için seçilen tarihin parça sınıfına nasıl geri dönebileceğine dair kafam karıştı mı?Android - bir parça/sekmede tarihçiden değer elde etme

Bir çeşit onDateSet'e ihtiyacım var, ancak düğme tıklatma işleminin yapıldığı bölüm sınıfında.

Eğer yapabilirsen, lütfen tavsiye teşekkürler:

Fragment1/Tab1: btn tıklamada

tarih seçiciyi açmak:

public void onClick(View v) { 
     switch (v.getId()){ 
      case R.id.bFromDate: 
       DialogFragment picker = new DatePickerFragment(); 
       picker.show(getActivity().getFragmentManager(), "datePicker"); 
       break; 

     } 
    } 

DatePickerFragment:

public class DatePickerFragment extends DialogFragment 
     implements DatePickerDialog.OnDateSetListener { 


    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
// Use the current date as the default date in the picker 
     final Calendar c = Calendar.getInstance(); 
     int year = c.get(Calendar.YEAR); 
     int month = c.get(Calendar.MONTH); 
     int day = c.get(Calendar.DAY_OF_MONTH); 

// Create a new instance of DatePickerDialog and return it 
     return new DatePickerDialog(getActivity(), this, year, month, day); 
    } 

    @Override 
    public void onDateSet(DatePicker view, int year, int month, int day) { 
     Calendar c = Calendar.getInstance(); 
     c.set(year, month, day); 

     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
     String formattedDate = sdf.format(c.getTime()); 
    } 
} 

teşekkür ederiz ..

cevap

1
başlatmasını ederken hedef parçasını ayarlayabilirsiniz

senin DialogFragment -

DialogFragment picker = new DatePickerFragment(); 
picker.setTargetFragment(this, <request_code>); // any number 
picker.show(getActivity().getFragmentManager(), "datePicker"); 

Ve senin DialogFragment aradığınız Fragment geri veri göndermek istediğinizde,

Intent intent = new Intent(); 
intent.putStringExtra("key_date", formattedDate); 
getTargetFragment().onActivityResult(getTargetRequestCode(), <request_code>, intent); 

Ve alıcı fragmanında uygulamak içinde DialogFragment'dan verileri almak için onActivityResult().

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // Make sure fragment codes match up 
    if (requestCode == <request_code>) { 


     String date = data.getStringExtra("key_date"); 
... 
} 
İlgili konular