私はMainActivityの中から呼び出す別のdatepickerクラスを持っています。私がやりたい何日付の後にメソッドを呼び出す
public void showDateDialog(View v){
DateDialog dialog= new DateDialog(findViewById(R.id.textView));
FragmentTransaction ft=getFragmentManager().beginTransaction();
dialog.show(ft, "DatePicker");
は、ユーザーが自分の日付を選択し、[OK]を押した後、選択した日付がSharedPreferencesでそれに割り当てられた文字列を持っている場合は、確認することです。私は私のMainActivityの中でこれのためのメソッドを作成しました:
public void checkHours(){
SharedPreferences sharedPref = getSharedPreferences("savedHours", Context.MODE_PRIVATE);
String date = textView.getText().toString();
if (sharedPref.contains(date)) {
textView2.setText(sharedPref.getString(date, ""));
}
}
日付の文字列は私がDatePickerから持っているものです。私は私のDateDialogクラスの内部からこれを呼び出すしようとしています:
public void onDateSet (DatePicker view, int year, int month, int day){
String date=year+"-"+month+"-"+day;
textView.setText(date);
MainActivity.checkHours();
}
しかし、私はエラー「非静的メソッドがstaticコンテキストから参照することはできません」取得しています。私はDateDialogの中からcheckHours()を使用する方法はありますか?
DateDialogクラス:
public class DateDialog extends DialogFragment implements DatePickerDialog.OnDateSetListener {
TextView textView;
TextView textView2;
public DateDialog(View view){
textView=(TextView)view;
}
public Dialog onCreateDialog(Bundle savedInstanceState){
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);
return new DatePickerDialog(getActivity(),this,year,month,day);
}
public void onDateSet (DatePicker view, int year, int month, int day){
String date=year+"-"+month+"-"+day;
textView.setText(date);
MainActivity.checkHours();
}
}
ニーズが 'Activity'インスタンスへの参照を使用し' onDateSet'方法で
を交換します。このメソッドを含むクラスのコードを含めることができますか? –
申し訳ありませんが、あなたはそれが何を意味するかわかりません? – Masy
可能であれば、 'DateDialog'クラスのコードを含めることができますか? –