2012-09-16 13 views
5

के अंदर एम्बेड डेटपिकर मैं एक एंड्रॉइड गतिविधि के अंदर DatePickerDialog एम्बेड करना चाहता हूं। मैं DatePicker को एक संवाद के रूप में बटन पर क्लिक करते समय प्रकट होने के लिए नहीं चाहता हूं लेकिन इसे अपनी गतिविधि के अंदर ही एम्बेड करें। मैंने अपने लेआउट के अंदर DatePicker व्यू का उपयोग करने का प्रयास किया है, लेकिन यह DatePickerDialog से अलग दिखता है।एक गतिविधि

मैं DatePickerDialog बनाने और MainAcitivity.java

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    DatePickerDialogFragment datePickerDialogFragment = DatePickerDialogFragment.newInstance(); 

    ft.add(R.id.main_screen_layout, datePickerDialogFragment); // main_screen_layout is given as the id for the layout related to MainActivity 
    ft.commit(); 

// DatePickerDialogFragment.java

public class DatePickerDialogFragment extends DialogFragment

implements DatePickerDialog.OnDateSetListener { 

public static DatePickerDialogFragment newInstance() { 
    return new DatePickerDialogFragment(); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.dialog_datepicker, container, false); 
    View tv = v.findViewById(R.id.tv); 

    ((TextView)tv).setText("This is a new instance"); 

    return v; 
} 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    Calendar c = Calendar.getInstance(); 
    return new DatePickerDialog(getActivity(), this, 
      c.get(Calendar.YEAR), 
      c.get(Calendar.MONTH), 
      c.get(Calendar.DAY_OF_MONTH)); 
} 

public void onDateSet(DatePicker view, int year, int monthOfYear, 
     int dayOfMonth) { 
    // TODO Auto-generated method stub 

} 

}

की onCreate में निम्नलिखित कोड का उपयोग कर के लिए DialogFragment उपयोग कर रहा हूँ 10

इस बारे में कैसे जाना है?

+0

वहाँ हो तिथि पिकर UI घटक के बहुत: नीचे, आप कुछ दिखा कैसे DatePicker लेआउट और गतिविधि कोड में अंतर्निहित है कोड पा सकते हैं। आप इनमें से किसी एक का उपयोग क्यों नहीं करते? –

उत्तर

1

मेरे पास गतिविधि लेआउट के भीतर डेटपिकर और डेटटाइम है। विचार दोनों के संस्करण की अनुमति देना है, दिनांक दिनांक मान लिखें और उपयोगकर्ता द्वारा किए गए/सेट बटन पर क्लिक करने के बाद इसे वापस कर दें।

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:orientation="vertical"> 

    <DatePicker 
     android:id="@+id/date_value" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:calendarViewShown="false" /> 
</LinearLayout> 


public class DateSelectionActivity extends Activity { 

    private DatePicker datePicker; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // ... 

     this.datePicker = (DatePicker) this.findViewById(R.id.date_value); 
     this.datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), null); 

     // ... 
    } 

    private OnClickListener confirmButtonClickListener = new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       // Get user selection 
       // DateSelectionActivity.this.datePicker.getYear()); 
       // DateSelectionActivity.this.datePicker.getMonth()); 
       // DateSelectionActivity.this.datePicker.getDayOfMonth()); 
      } 
    } 
}