当我从其他example.class(活动)单击按钮时,我想toDo()工作App.class(AllActivity)
public class Otherclass extend AppCompatActivity{
Button example = (Button)findViewById(R.id.option_language);
example.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
example.isChecked();
}
});
}
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
ToDo();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
toDo();
}
public void toDo() {
if(new OtherClass().example.isChecked()) {
// To do something.
}
}
}
}
我想这样做。但是,我在空对象引用上得到了java.lang.NullPointerException:.isChecked()'
答案 0 :(得分:0)
这是您实施的不良行为。
如果要检查是否单击了示例按钮。只需在您的App
类中使用一个布尔标志,然后在单击按钮时设置它的值即可。
如果您希望将此标志从一个活动传递到另一个活动,只需对其使用Intent。
public class Otherclass extend AppCompatActivity{
Button example = (Button)findViewById(R.id.option_language);
example.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
App.setIsChecked(true);
}
});
}
public class App extends Application {
public static boolean isChecked = false;
@Override
public void onCreate() {
super.onCreate();
ToDo();
}
public void setIsChecked(boolean isChecked) {
this.isChecked = isChecked;
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
toDo();
}
public void toDo() {
if(isChecked) {
// To do something.
}
}
}
}
答案 1 :(得分:0)
public class Otherclass extend AppCompatActivity{
static Boolean checked=false;
Button example = (Button)findViewById(R.id.option_language);
example.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checked=true;
}
});
}
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
ToDo();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
toDo();
}
public void toDo() {
if(new OtherClass().checked) {
// To do something.
}
}
}
}
这可能会有用 在类中使用静态代码是不好的编码习惯。而是使用意图在类之间进行通信
答案 2 :(得分:0)
您可以在任意按钮单击时调用App类的todo方法
User::find(1)->session()->count();