2015年8月22日 星期六

android DatePicker 日期選擇

以下是簡單日期選擇例子

注意:

版面要加入兩個 textView 及 一個 DatePick (textView1, textView2, datePicker1)

因 Bug 關係, DatePick 放置後會顯示 Rendering Problems, 及不會顯示 DatePick, 但 run app 後會在 app 顯示

預設日期
datepick.init(2016,1,4,onDateChanged);

月份係由 0 至 11, 當顯示數字時要加 1, array 係由 0 開始, 所以不須要
Integer.toString(monthOfYear+1)

加入此兩個可改變日期選擇為轉動選擇
datepick.setCalendarViewShown(false);
datepick.setSpinnersShown(true);
 

 
 
import android.app.Activity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.TextView;


public class MainActivity extends Activity {
    @Override    protected void onCreate(Bundle savedInstanceState)  {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        DatePicker datepick = (DatePicker)
                findViewById(R.id.datePicker1);
        datepick.init(2016,1,4,onDateChanged);
        //    datepick.setCalendarViewShown(false); 
        //    datepick.setSpinnersShown(true);    }

    DatePicker.OnDateChangedListener onDateChanged=
            new DatePicker.OnDateChangedListener() {
                @Override                 
              public void onDateChanged(
                        DatePicker view,
                        int year,
                        int monthOfYear,
                        int dayOfMonth) {
                    final String[] MMM = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
                    TextView tv1 = (TextView)findViewById(R.id.textView1);
                    TextView tv2 = (TextView)findViewById(R.id.textView2);
                    
                    tv1.setText(Integer.toString(dayOfMonth) +
                            "/"+Integer.toString(monthOfYear+1)+
                            "/"+Integer.toString(year) );

                    tv2.setText(Integer.toString(dayOfMonth) +
                            "/"+(MMM[monthOfYear])+
                            "/"+Integer.toString(year) );
                                    }
            };
}
 
 

沒有留言:

張貼留言