【问题标题】:Fill non-static variable in static class (Spinner)在静态类中填充非静态变量(Spinner)
【发布时间】:2014-12-07 06:22:53
【问题描述】:

我正在尝试这样做:

  1. 在 DatePickerDialog 中用户设置日期
  2. 日期将写入 Spinner

问题在于包含 OnDateSet 方法的 DatePickerFragment 类是静态的,而微调器是非静态的。在 OnDateSet 方法中,我需要将项目添加到适配器并调用方法 Spinner.setSelection(int i)

public static class DatePickerFragment extends DialogFragment
                            implements DatePickerDialog.OnDateSetListener {

           @Override
           public Dialog onCreateDialog(Bundle savedInstanceState) {
               // Use the current date as the default date in the picker
               final Calendar c = Calendar.getInstance();
               int year1 = c.get(Calendar.YEAR)-25;
               int month1 = 0;
               int day1 = 1;


               // Create a new instance of DatePickerDialog and return it
               return new DatePickerDialog(getActivity(), this, year1, month1, day1);
           }

           public void onDateSet(DatePicker view, int year1, int month1, int day1) {
               firstdate = day1 + "/" + month1 + "/" + year1;
           }

       }

错误在这一行:

firstdate = day1 + "/" + month1 + "/" + year1;

谁能帮帮我?

提前致谢。

【问题讨论】:

  • 第一个日期未声明
  • 是的,它在课堂之外

标签: android variables static non-static


【解决方案1】:

你也可以在你的片段中声明它,并有一个 getter 来返回它的值;

public static class DatePickerFragment extends DialogFragment
                        implements DatePickerDialog.OnDateSetListener {

 private int firstdate;

 // .. other code

 public int getFirstDate() {
    return firstdate;
 }

}

根据您的活动,onDissmiss 您可以将其称为 mDialogInstance.getFirstDate();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    相关资源
    最近更新 更多