私はAndroidプログラミングに少し慣れていないので、ここで我慢してください...
Google Android - Pickersのチュートリアルに従っていますが、フォローした後、元のアクティビティで選択した日付を返して表示する方法がわかりません。
これが非常に紛らわしいと思われる場合は、現在ClassA.javaとClassB.javaの 2 つのクラスがあり、ClassAがメイン アクティビティで、ClassBがダイアログ フラグメントです。
以下のこの関数 (これはClassBにあります) はビュー、年、月、およびテキストを取り込んで何かを返すことを理解していますが、それをClassAのメイン関数に戻して現在選択されている値として表示する方法がわかりませんスピナー(TextView)で。
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
return [something];
}
ClassAの私の関数は、ユーザーがスピナー( TextView )をタップ ( onClick )すると、以下のコードを使用します。
public void DatePicker(View v) {
DialogFragment DateFragment = new NotifyDatePicker();
DateFragment.show(getSupportFragmentManager(), "DatePicker");
}
問題は、データの保存をどこから開始するかということです。ClassBからClassAへの戻り値を取得して(戻り値さえありますか?)、それをBundleに格納しますか(同時に R.id.TextViewSpinner を更新します)、またはユーザーが内部にいる間にそれを保存しますか? DialogFragment ( ClassB ) ?
編集
私は自分の間違いに気づきました。ClassBはそれ自体が別のアクティビティであるため、Spinner ( TextView ) の変更と Bundle の保存はClassBで行う必要があります...
ただし、小さな問題が 1 つあります。
(TextView)findViewById(R.id.TextViewSpinner).setText(daymonthyear)を使用していますが、エラーが発生し続けます:
The method findViewById(int) is undefined for the type ClassB
インポート/インクルードするのを忘れたものはありますか?
フルコード
public class ClassB extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@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) {
// Change TextViewSpinner here (setText)
// Tried (TextView)findViewById(R.id.TextViewSpinner).setText(daymonthyear) - The method findViewById(int) is undefined for the type ClassB error returned
// Tried (TextView)context.findViewById(R.id.TextViewSpinner) - context cannot be resolved error returned
return;
}
}
これはGoogle チュートリアル経由です。あちこち微調整してきましたが、いつも振り出しに戻ってしまいます...