0

この質問の言い方がよくわからないので、その面で最善を尽くしました。DatePickerそのため、アクティビティでの作成に問題があります。これは私にエラーを与えているコードです:

EditEventActivity.java

DateDialogFragment frag = DateDialogFragment.newInstance(this, new 
DateDialogFragmentListener() {

            @Override
            public void updateChangeDate(int year, int month, int day) {
                // TODO Auto-generated method stub

            }
        }, sYear, sMonth, sDay);

私が持っているnewInstance()方法は私にエラーを与えるものです。エラーは次のとおりです。

The method newInstance(Context, AddEventActivity.DateDialogFragmentListener, int, int,
int) in the type DateDialogFragment is not applicable for the arguments 
(EditEventActivity, new EditEventActivity.DateDialogFragmentListener(){}, int, int, 
int)

これで、DateDialogFragmentは独自のファイルに配置されます。投稿する必要はないと思います。それが現実さ。しかし、私のインターフェースはにありAddEventActivity.javaます。今、これは私が混乱していることです。newInstance()DateDialogFragmentからの私の静的メソッドはかかりDateDialogFragmentListenerませんAddEventActivity.DateDialogFragmentListener。だから私はそれが問題であると思います。しかし、繰り返しになりますが、私にはわかりません。それが私が理解するのに必要なことです。よろしくお願いします。

実際。私はまた、私がnewInstance()方法を含めたほうがよいと思います:

DateDialogFragment.java

public static DateDialogFragment newInstance(Context context, DateDialogFragmentListener 
listener, int year, int month, int day) {
    DateDialogFragment dialog = new DateDialogFragment();
    mContext = context;
    mListener = listener;
    mYear = year;
    mMonth = month;
    mDay = day;
    Bundle args = new Bundle();
    args.putString("title", "Set Date");
    dialog.setArguments(args);
    return dialog;
}
4

2 に答える 2

3

メソッドに渡す引数が多すぎますnewInstance(...)。を渡すだけsYearsMonthsDay2回ではなく1回だけ通過します。

編集 ここには、同じ単純な名前の2つのクラスがありますが、それらは異なるクラスであるため、異なるタイプです。適切なクラスのインスタンスを渡すだけです。

DateDialogFragment frag = DateDialogFragment.newInstance(
    this, 
    new AddEventActivity.DateDialogFragmentListener() {

        @Override
        public void updateChangeDate(int year, int month, int day) {
            // TODO Auto-generated method stub

        }
    }, sYear, sMonth, sDay);

newInstance()..または、を渡す必要がある場合は、メソッドのシグネチャを修正しますEditEventActivity.DateDialogFragmentListener

于 2012-07-01T21:29:37.343 に答える
1

EditEventActivity.DateDialogFragmentListenerそれが拡張すると仮定するとAddEventActivity.DateDialogFragmentListenernewInstanceメソッドはリスナーの後に3int秒かかり、6秒を渡しintます-おそらく次のことを意味します:

DateDialogFragment frag = DateDialogFragment.newInstance(this, new DateDialogFragmentListener() {

        @Override
        public void updateChangeDate(int year, int month, int day) {
            // TODO Auto-generated method stub

        }
    }, sYear, sMonth, sDay); //removed the last 3 arguments

編集
あなたの編集に続いて、私の最初のコメントに戻ってください:EditEventActivity.DateDialogFragmentListener拡張しAddEventActivity.DateDialogFragmentListenerますか?

于 2012-07-01T21:30:06.953 に答える