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

沒有留言 :
張貼留言