gpt4 book ai didi

java - 在 setContentView Java 之上实例化对象时出现范围错误

转载 作者:行者123 更新时间:2023-12-02 06:55:22 25 4
gpt4 key购买 nike

我正在尝试实例化 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 的 Activity 。显然,当我将上述 3 个对象移动到 public class FilterTimeActivity extends Activity { 中时,我需要先执行 super.onCreatesetContentView 。但在 OnCreate() 之外它会崩溃。

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

public void filterResults(View view){}

从按钮监听器调用(而不是从其他方法调用)

最佳答案

只需将它们声明为 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);

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

关于java - 在 setContentView Java 之上实例化对象时出现范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17444294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com