私はアンドロイドが初めてです。次のガイドを使用して、アンドロイドで日付ピッカーを作成しました。http://developer.android.com/guide/topics/ui/controls/pickers.html
public class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
StringBuilder sb = new StringBuilder();
public static String date;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
sb.append(year);
sb.append('-');
sb.append(month+1);
sb.append('-');
sb.append(day);
date = sb.toString();
System.out.println("The date is "+date);
}
この日付値 (date = sb.toString()) を MainActivity に返す必要があります。onDateSet メソッドが無効なので、どうすればよいですか?
追加情報 - DatePickerDialog は MainActivity クラスでトリガーされますが、ボタン 1 回のクリックではトリガーされません。1 つのボタンの横にいくつかのプロセスが発生します。日付ピッカーは、特定の条件が満たされた場合にのみトリガーされます。日付の値も表示したくありません。さらなる処理のためにそれを返してほしいだけです。
あらゆる種類のガイダンスに感謝します
onDataset メソッドと justshow() を変更
public void onDateSet(DatePicker view, int year, int month, int day) {
// ユーザーが選択した日付で何かをする
sb.append(year);
sb.append('-');
sb.append(month+1);
sb.append('-');
sb.append(day);
date = sb.toString();
MainActivity.newdate=sb.toString();
System.out.println("The date is "+MainActivity.newdate);
} public void justShow(){
System.out.println("The date is "+MainActivity.newdate);
}
これはメインからの関連する部分です(最初の返信で提案された変更を行った後)
DateToken mydate=new DateToken();
String test=dayvals.get(0);
DialogFragment df=new DatePickerFragment();
if(test.equalsIgnoreCase("day")){
df.show(getSupportFragmentManager(), "DatePik");
}
System.out.println("Date is on Main"+newdate);
DatePickerFragment dpf=new DatePickerFragment();
dpf.justShow();
newdate は静的 String ですが、それでも null を出力します。MainActivity と justShow メソッドの両方で。しかし、onDataSet メソッドでは日付が正しく出力されます