2013-03-15 69 views

回答

0

您在问题中提供的链接已经有一个示例。 如果你想替代尝试这个。

public class pickerdate extends Activity { 
/** Called when the activity is first created. */ 
    private TextView mDateDisplay; 
    private Button mPickDate; 
    private int mYear; 
    private int mMonth; 
    private int mDay; 

    static final int DATE_DIALOG_ID = 0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 


     mDateDisplay = (TextView) findViewById(R.id.dateDisplay); 
     mPickDate = (Button) findViewById(R.id.pickDate); 


     mPickDate.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       showDialog(DATE_DIALOG_ID); 
      } 
     }); 


     final Calendar c = Calendar.getInstance(); 
     mYear = c.get(Calendar.YEAR); 
     mMonth = c.get(Calendar.MONTH); 
     mDay = c.get(Calendar.DAY_OF_MONTH); 

     updateDisplay(); 
    } 
    private void updateDisplay() { 
     mDateDisplay.setText(
      new StringBuilder() 
        // Month is 0 based so add 1 
        .append(mMonth + 1).append("-") 
        .append(mDay).append("-") 
        .append(mYear).append(" ")); 
    } 
    private DatePickerDialog.OnDateSetListener mDateSetListener = 
     new DatePickerDialog.OnDateSetListener() { 

      public void onDateSet(DatePicker view, int year, 
            int monthOfYear, int dayOfMonth) { 
       mYear = year; 
       mMonth = monthOfYear; 
       mDay = dayOfMonth; 
       updateDisplay(); 
      } 
     }; 
     @Override 
     protected Dialog onCreateDialog(int id) { 
      switch (id) { 
      case DATE_DIALOG_ID: 
       return new DatePickerDialog(this, 
          mDateSetListener, 
          mYear, mMonth, mDay); 
      } 
      return null; 
     } 
    } 

main.xml中

<?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:orientation="vertical"> 
<TextView android:id="@+id/dateDisplay" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text=""/> 
<Button android:id="@+id/pickDate" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Date Picker"/> 

1

蜂窝状或更高版本,你可以设置这种类型的日期选择器的。 创建一个新的Android项目目标Android 3.0。修改的main.xml添加一个datepicker:

<?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:orientation="horizontal"> 
    <TextView android:id="@+id/dateDisplay" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingLeft="4dip" 
     android:text="@string/hello"/> 
     <Button android:id="@+id/pickDate" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingLeft="4dip" 
     android:text="@string/hello"/>  

DatePickerExample.java

public class DatePickerExample extends Activity { 
    private TextView mDateDisplay; 
    private int mYear; 
    private int mMonth; 
    private int mDay; 
    static final int DATE_DIALOG_ID = 1; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.date_picker); 
      mDateDisplay = (TextView) findViewById(R.id.dateDisplay); 
      Button pickDate = (Button) findViewById(R.id.pickDate); 
      pickDate.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View v) { 
          showDialog(DATE_DIALOG_ID); 
        } 
      }); 
      final Calendar c = Calendar.getInstance(); 
      mYear = c.get(Calendar.YEAR); 
      mMonth = c.get(Calendar.MONTH); 
      mDay = c.get(Calendar.DAY_OF_MONTH); 
      updateDisplay(); 
    } 
    @Override 
    protected Dialog onCreateDialog(int id) { 
      switch (id) { 
      case DATE_DIALOG_ID: 
        return new DatePickerDialog(this, 
          mDateSetListener, 
          mYear, mMonth, mDay); 
      } 
      return null; 
    } 
    protected void onPrepareDialog(int id, Dialog dialog) { 
      switch (id) { 
      case DATE_DIALOG_ID: 
        ((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay); 
        break; 
      } 
    } 
    private void updateDisplay() { 
      mDateDisplay.setText(
        new StringBuilder() 
        // Month is 0 based so add 1 
        .append(mMonth + 1).append("-") 
        .append(mDay).append("-") 
        .append(mYear).append(" ")); 
    } 
    private DatePickerDialog.OnDateSetListener mDateSetListener = 
      new DatePickerDialog.OnDateSetListener() { 
      public void onDateSet(DatePicker view, int year, int monthOfYear, 
          int dayOfMonth) { 
        mYear = year; 
        mMonth = monthOfYear; 
        mDay = dayOfMonth; 
        updateDisplay(); 
      } 
    };} 

enter image description here enter image description here

相关问题