2015年8月26日 星期三

android DatePickerDialog 彈出日期選擇

注意:

版面要加入一個 textView 及 一個 Button (textView1, ChooseDateBtn)




import android.app.DatePickerDialog;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;

import java.util.Calendar;

public class MainActivity extends ActionBarActivity {

    Calendar c = Calendar.getInstance();
    TextView DisplayDate;
    int cday, cmonth, cyear;

    @Override     
       protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button changeDate = (Button) findViewById(R.id.ChooseDateBtn);
        DisplayDate = (TextView) findViewById(R.id.textView1);

        changeDate.setOnClickListener(new OnClickListener() {

            @Override             
             public void onClick(View arg0) {

                new DatePickerDialog(MainActivity.this, d,
                        c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)).show();

            }
        });
    }

    DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener() {

        @Override 
            public void onDateSet(DatePicker view, int year, int monthOfYear,
                              int dayOfMonth) {

            cday = dayOfMonth;
            cmonth = monthOfYear + 1;
            cyear = year;

            DisplayDate.setText("Choosen date is :" + cday + "/" + cmonth + "/" + cyear);
        }
    };
}
 
 


 

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) );
                                    }
            };
}