そのため、ユーザーが年/月 (クレジット カードの場合) を選択できるダイアログ ボックスが必要です。ユーザーがダイアログに対して [OK] をクリックすると、ホスト (つまり、ダイアログを作成したアクティビティ) に変更が通知されます。
アプリケーションが SDK バージョン 7 で動作する必要があるため、ここで提案されているように DialogFragment を使用できません: http://developer.android.com/guide/topics/ui/dialogs.html
現在、これは私が得たものです:
public class DatePicker {
/* The activity that creates an instance of this dialog fragment must
* implement this interface in order to receive event callbacks.
* Each method passes the DialogFragment in case the host needs to query it. */
public interface DatePickerListener {
public void onDialogPositiveClick(int month, int year);
public void onDialogNegativeClick();
}
// Use this instance of the interface to deliver action events
static DatePickerListener mListener;
public static void show(Activity listner) {
mListener = (DatePickerListener)listner;
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder((Activity)mListener);
LayoutInflater inflater = listner.getLayoutInflater();
builder.setView(inflater.inflate(R.layout.date_picker, null))
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
mListener.onDialogPositiveClick(11, 11);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
}
);
// Create the AlertDialog object and return it
builder.create();
builder.show();
}
}
および XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp" >
<Spinner
android:id="@+id/spinnerMonth"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Spinner
android:id="@+id/spinnerYear"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
したがって、私には2つの問題があります.1つ目は、onClickダイアログでスピナーの値を取得できないように見えることです.2つ目は、スピナーの内容をプログラムで設定する必要があり、その方法もわかりません(できないのでダイアログの内容を適切に取得しているようです)。
誰かが私を正しい方向に向けることができますか? とても有難い!