2016-04-17 6 views
1

私のコードは、私はこのコードを持つ2つの問題を抱えている私たちは以下のコード</p> <pre><code>date.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ((Fragment)UserRequests.this.context).showDialog(999);//Error } }); </code></pre> <p>を次のようにBaseAdapterで断片

protected Dialog onCreateDialog(int id) { 
    // TODO Auto-generated method stub 
    if (id == 999) { 
     return new DatePickerDialog(context, myDateListener, year, month, day); 
    } 
    return null; 
} 

private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) { 
     // TODO Auto-generated method stub 
     // arg1 = year 
     // arg2 = month 
     // arg3 = day 
     showDate(arg1, arg2+1, arg3); 
    } 
}; 

private void showDate(int year, int month, int day) { 
    date.setText(new StringBuilder().append(day).append("/") 
      .append(month).append("/").append(year)); 
} 

を必要と日付ピッカーを示すことを行くためにBaseAdapterで日付ピッカーを使用します。まず、UserRequestsというフラグメントにdatepickerを表示したいと思います。私はできません。私は以下のように試しました。

((Fragment)UserRequests.this.context).showDialog(999); 

第2の問題は、onCreateDialogメソッドが使用されないという警告が表示されていることです。説明してください。これを解決する方法。前もって感謝します。

答えて

0

DialogFragmentからUserRequestsを継承し、次のようにonCreateDialogをオーバーライドする必要があります。

@Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
    //do something 
    } 

詳細情報はFeedListAdapterというクラスがBaseAdapter延びdocumentation

+0

にあり、UserRequestフラグメントを拡張するクラスです。 BaseAdapterクラスから、UserRequest FragmentのDatePickerを取得する必要があります。さらに、BaseAdapterを拡張したクラスでBundleを使用することもできます。 – Karrthik

+0

DialogFragmentを拡張する別のクラス(DatePickerFragmentなど)をUserRequest内に作成できます。 showDialog内では、DatePickerFragmentのインスタンスを作成して使用できます。 BaseAdapterからバンドルが渡されません。しかし、必要に応じて作成して処理することができます。 –

関連する問題

 関連する問題