顯示具有 DatePicker 標籤的文章。 顯示所有文章
顯示具有 DatePicker 標籤的文章。 顯示所有文章

2015年4月10日 星期五

Android DatePicker Hide Year Month Day 日期選項 隱藏 年 月 日

隱藏原生的DatePicker的年或月
1./res/layout/main.xml


    

        

            
            

            
            

            
            

            
            

            
            

            
            
        
    


2.Main.java
package tw.android;

import java.lang.reflect.Field;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.DatePicker;

public class Main extends Activity {
 private DatePicker datePicker1, datePicker2;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  datePicker1 = (DatePicker) findViewById(R.id.datePicker1);
  datePicker2 = (DatePicker) findViewById(R.id.datePicker2);

  try {
   /* 隱藏年 */
   Field f1[] = datePicker1.getClass().getDeclaredFields(); // 建立datePicker1
   for (Field field : f1) {
    Log.i("f1's all field", field.getName() + ""); // log出f1的所有元素
    if (field.getName().equals("mYearSpinner")) { // 取得的元素等於mYearSpinner
     field.setAccessible(true);
     Object yearPicker = new Object();
     yearPicker = field.get(datePicker1);
     ((View) yearPicker).setVisibility(View.GONE); // 隱藏年
    }

   }
   /* 隱藏年、月 */
   Field f2[] = datePicker2.getClass().getDeclaredFields(); // 建立datePicker2
   for (Field field : f2) {
    Log.i("f2's all field", field.getName() + ""); // log出f2的所有元素
    if (field.getName().equals("mYearSpinner")) { // 取得的元素等於mYearSpinner
     field.setAccessible(true);
     Object yearPicker = new Object();
     yearPicker = field.get(datePicker2);
     ((View) yearPicker).setVisibility(View.GONE); // 隱藏年
    }

    if (field.getName().equals("mMonthSpinner")) { // 取得的元素等於mMonthSpinner
     field.setAccessible(true);
     Object monthPicker = new Object();
     monthPicker = field.get(datePicker2);
     ((View) monthPicker).setVisibility(View.GONE); // 隱藏月
    }

   }
  } catch (Exception e) {
   Log.d("ERROR", e.getMessage());
  }
 }
}


參考來源:
http://stackoverflow.com/questions/10401915/hide-year-field-in-android-datepicker

2015年3月26日 星期四

Android jump DatePicker TimePicker 跳出 日期選項 時間選項

點選按鈕,跳出選擇日期、時間選項
1.res/layout/main.xml



    

       

        

        
    

    

        

        

        
    
 


2.Main.java
package tw.android;

import java.util.Calendar;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;

public class Main extends Activity {
 private TextView tvDate, tvTime;
 private Button btDate, btTime;
 private int mYear, mMonth, mDay, mHour, mMinute;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  tvDate = (TextView) findViewById(R.id.tvDate);
  tvTime = (TextView) findViewById(R.id.tvTime);

  btDate = (Button) findViewById(R.id.btDate);
  btTime = (Button) findViewById(R.id.btTime);

  btDate.setOnClickListener(new Button.OnClickListener() {
   public void onClick(View v) {
    showDatePickerDialog();
   }
  });
  btTime.setOnClickListener(new Button.OnClickListener() {
   public void onClick(View v) {
    showTimePickerDialog();
   }
  });
 }

 public void showDatePickerDialog() {
  // 設定初始日期
  final Calendar c = Calendar.getInstance();
  mYear = c.get(Calendar.YEAR);
  mMonth = c.get(Calendar.MONTH);
  mDay = c.get(Calendar.DAY_OF_MONTH);

  // 跳出日期選擇器
  DatePickerDialog dpd = new DatePickerDialog(this,
    new DatePickerDialog.OnDateSetListener() {
     public void onDateSet(DatePicker view, int year,
       int monthOfYear, int dayOfMonth) {
      // 完成選擇,顯示日期
      tvDate.setText(year + "-" + (monthOfYear + 1) + "-"
        + dayOfMonth);

     }
    }, mYear, mMonth, mDay);
  dpd.show();
 }

 public void showTimePickerDialog() {
  // 設定初始時間
  final Calendar c = Calendar.getInstance();
  mHour = c.get(Calendar.HOUR_OF_DAY);
  mMinute = c.get(Calendar.MINUTE);

  // 跳出時間選擇器
  TimePickerDialog tpd = new TimePickerDialog(this,
    new TimePickerDialog.OnTimeSetListener() {
     public void onTimeSet(TimePicker view, int hourOfDay,
       int minute) {
      // 完成選擇,顯示時間
      tvTime.setText(hourOfDay + ":" + minute);
     }
    }, mHour, mMinute, false);
  tpd.show();
 }

}


檔案下載:
https://github.com/terryyamg/jumpDatePickerTest
參考來源:
http://pulse7.net/android/date-picker-dialog-time-picker-dialog-android/