DatePickerの日付を制限する(最小値)
DatePickerの日付を制限する(最小値)
// 最小値
GregorianCalendar minDate = new GregorianCalendar();
minDate.set(2016, 0, 1); // 2016年1月1日
DatePicker datePicker = datePickerDialog.getDatePicker();
datePicker.setMinDate(minDate.getTimeInMillis());
年月だけのDatePicker(スピナー型)
年月だけのDatePicker(スピナー型)の作り方です。
// 日付設定ダイアログの作成・リスナの登録
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), android.R.style.Theme_Holo_Dialog, DateSetListener, year, monthOfYear, dayOfMonth);
DatePicker datePicker = datePickerDialog.getDatePicker();
int dayId = Resources.getSystem().getIdentifier("day", "id", "android");
datePicker.findViewById(dayId).setVisibility(View.GONE);
// 日付設定ダイアログの表示
datePickerDialog.show();
2017/7/22 追記
Android 7.0以降では、この方法は通用しません。
Android 5.0(Lollipop)でDatePickerをスピナー型にする
Android 5.0(Lollipop)では、datePicker.setSpinnersShown(true)もdatePicker.setCalendarViewShown(false)も効きません。datePickerは強制的にカレンダ型になってしまいます。
スピナー型を選択する場合、旧テーマを選択することにより実現できます。
// 日付設定ダイアログの作成・リスナの登録
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), android.R.style.Theme_Holo_Dialog, DateSetListener, year, monthOfYear, dayOfMonth);
// 日付設定ダイアログの表示
datePickerDialog.show();
android.R.style.Theme_Holo_Dialogで、旧テーマを指定しています。
2017/9/4追記
Android 7.0以降では、この方法は通用しません。
数値をフォーマットする
- 金額の3桁毎にコンマを入れる。
textView.setText(String.format(Locale.JAPAN, "%,d", calculateBalance()));
- 数値のはじめを0でパディングする。
mNumber = (TextView) convertView.findViewById(R.id.textViewListNumber);
mNumber.setText(String.format(Locale.JAPAN, "%03d", position+1));
Spinner
Spinnerを使用してドロップダウンリストからアイテムを選択する。
- レイアウト
<Spinner
android:layout_width="200dp"
android:layout_height="wrap_content"
android:id="@+id/spinnerCategoly"
android:textAppearance="?android:attr/textAppearanceMedium" />
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// アイテムを追加します
SharedPreferences prefs = this.getActivity().getSharedPreferences("setting", Context.MODE_PRIVATE);
Context context = getActivity();
Resources res = context.getResources();
String category_1 = prefs.getString("Category_1", res.getString(R.string.category_default_1));
String category_2 = prefs.getString("Category_2", res.getString(R.string.category_default_2));
String category_3 = prefs.getString("Category_3", res.getString(R.string.category_default_3));
String category_4 = prefs.getString("Category_4", res.getString(R.string.category_default_4));
String category_5 = prefs.getString("Category_5", res.getString(R.string.category_default_5));
String category_6 = prefs.getString("Category_6", res.getString(R.string.category_default_6));
String category_7 = prefs.getString("Category_7", res.getString(R.string.category_default_7));
String category_8 = prefs.getString("Category_8", res.getString(R.string.category_default_8));
String category_9 = prefs.getString("Category_9", res.getString(R.string.category_default_9));
if (!category_1.equals("")) adapter.add(category_1);
if (!category_2.equals("")) adapter.add(category_2);
if (!category_3.equals("")) adapter.add(category_3);
if (!category_4.equals("")) adapter.add(category_4);
if (!category_5.equals("")) adapter.add(category_5);
if (!category_6.equals("")) adapter.add(category_6);
if (!category_7.equals("")) adapter.add(category_7);
if (!category_8.equals("")) adapter.add(category_8);
if (!category_9.equals("")) adapter.add(category_9);
Spinner spinner = (Spinner) view.findViewById(R.id.spinnerCategoly);
// アダプターを設定します
spinner.setAdapter(adapter);
// スピナーのアイテムが選択された時に呼び出されるコールバックリスナーを登録します
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
Spinner spinner = (Spinner) parent;
// 選択されたアイテムを取得します
String item = (String) spinner.getSelectedItem();
dataCenter.setCurrentCategory(item);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});