0

我正在尝试实例化 3 个要在按钮事件处理程序中使用的对象:

    // Instantiate class objects
    final TimePicker timePicker = (TimePicker) findViewById(R.id.tp_selTime);
    final CheckBox cb_filterTime = (CheckBox) findViewById(R.id.cb_filterByTime);
    final DatePicker datePicker = (DatePicker) findViewById(R.id.dp_filterTime);

MainActivity.java我从被调用开始一个活动FilterTimeActivity.java。显然,当我将上述 3 个对象移动到它之外但它崩溃时super.onCreate,我需要先做任何事情。setContentViewpublic class FilterTimeActivity extends Activity {OnCreate()

有没有办法正确确定范围,以便我可以从此方法访问这些对象:

public void filterResults(View view){}

从按钮侦听器调用(而不是从另一个方法调用)

4

1 回答 1

2

只需将它们声明为您的Activity(外部onCreate())的成员变量。

把这些放在外面onCreate(),放在你班级的顶部:

TimePicker timePicker;
CheckBox cb_filterTime;
DatePicker datePicker;

然后在onCreate()

timePicker = (TimePicker) findViewById(R.id.tp_selTime);
cb_filterTime = (CheckBox) findViewById(R.id.cb_filterByTime);
datePicker = (DatePicker) findViewById(R.id.dp_filterTime);

它们在外部声明,但在内部初始化。您将可以在任何地方使用它们。

于 2013-07-03T09:26:17.003 回答