私はAndroidには新しく、Androidに適用されるコンテキストは完全に理解していません。私は少し理解していますが、完全ではありません。 DatePickerDialogに曜日と月だけが表示されるように、AndroidのDatePickerを変更しようとしています。私はstackoverflowに尋ねた、私は3つのコードブロックの形で1つの答えが与えられた。コードは以下の通りです。私の問題は、 、this
に1つのエラーが発生しています...エラーはgetContext()
です。 onClickListener
の場合、getContext()
は未定義です。そこで、以下のコードを見て、getContext()
の修正点は何でしょうか? getContext()
メソッドを作成すると、コードが実際に悪化します。コンテキストを使用すると、getContext(), this,
の代わりにnullがエラーを消去しますが、nullであってはなりません。this
である必要があります。Android DatePickerのコンテキスト
static final int ID_DATEPICKER = 0;
private int myYear, myMonth, myDay;
TextView dateDisplay;
Dialog mDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
dateDisplay = (TextView)findViewById(R.id.dateDisplay);
Button datePickerButton = (Button)findViewById(R.id.datepickerbutton);
datePickerButton.setOnClickListener(datePickerButtonOnClickListener);
}
private Button.OnClickListener datePickerButtonOnClickListener
= new Button.OnClickListener(){
@Override
public void onClick(View v) {
final Calendar c = Calendar.getInstance();
mDialog = new CustomDPDialog(getContext(), this,
c.get(Calendar.YEAR), c.get(Calendar.MONTH),
c.get(Calendar.DAY_OF_MONTH));
mDialog.show();
DatePicker dp = findDatePicker((ViewGroup) mDialog.getWindow().getDecorView());
if (dp != null) {
((ViewGroup) dp.getChildAt(0)).getChildAt(0).setVisibility(View.GONE);
}
}
class CustomDPDialog extends DatePickerDialog {
public CustomDPDialog(Context context,
OnDateSetListener callBack, int myYear, int myMonth,
int myDay) {
super(context, callBack, myYear, myMonth, myDay);
}
@Override
public void onDateChanged(DatePicker view, int year, int month, int day) {
super.onDateChanged(view, year, month, day);
mDialog.setTitle((month + 1) + "-" + day + "-");
}
}
private DatePicker findDatePicker(ViewGroup group) {
if (group != null) {
for (int i = 0, j = group.getChildCount(); i < j; i++) {
View child = group.getChildAt(i);
if (child instanceof DatePicker) {
return (DatePicker) child;
} else if (child instanceof ViewGroup) {
DatePicker result = findDatePicker((ViewGroup) child);
if (result != null)
return result;
}
}
}
return null;
}
};
}
いずれも有効ではありません。しかし、私はあなたの推理でどこに行くのかを見ています。 v.getContextはビューのコンテキストを必要としないので、私はそれがDatePickerのコンテキストを望んでいると思うので、動作しないと思います。だから私はv。Thaksの代わりにすべての変数を使って助けをしています! – kirktoon1882
hmmm ...私はv.getContext()がいずれかの方法で動作すると思います。さて、私は何がうまくいったのか教えてください!! – ByteMe
すべての提案でEclipseは "メソッドgetContext(View.OnClickListener)は新しい型のために未定義ですView.OnClickListener(){}"私はどのビットのコードが未定義であるかを確かめていません。 – kirktoon1882