我试图在按钮事件处理程序中实例化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
的{{1}}开始活动。显然我需要先做FilterTimeActivity.java
和super.onCreate
,当我将上述3个对象移动到setContentView
但在public class FilterTimeActivity extends Activity {
之外时它会崩溃。
有没有办法正确定位这个,所以我可以从这个方法访问这些对象:
OnCreate()
从按钮侦听器调用(而不是从另一个方法调用)
答案 0 :(得分: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);
它们在外面宣布但在内部初始化。你可以在任何地方使用它们。