Java如何在另一个类中使用活动方法
例如,我有一个活动课。在这个类中,我有一些变量,我想在另一个类中使用它们。代码如下:Java如何在另一个类中使用活动方法,java,android,android-activity,Java,Android,Android Activity,例如,我有一个活动课。在这个类中,我有一些变量,我想在另一个类中使用它们。代码如下: public class SearchView { private MenuActivity menuActivity; public SearchView() { menuActivity = new MenuActivity(); menuActivity.searchButton = (ImageView) menuActivity.findViewByI
public class SearchView {
private MenuActivity menuActivity;
public SearchView() {
menuActivity = new MenuActivity();
menuActivity.searchButton = (ImageView) menuActivity.findViewById(R.id.searchButton);
}
}
最后一行给了我一个
NullPointerException
。我知道我需要初始化它,但如何初始化活动?如果需要变量的值
使用意图将其传递给下一个活动。
若它是一个静态值,那个么将它放在单独的常量文件中,并和类名一起使用。
如果是视图,请在下一个活动中再次使用该视图
public class SearchView {
private MenuActivity menuActivity;
public SearchView(Activity activityRef) {
MenuActivity.searchButton = (ImageView) activityRef.findViewById(R.id.searchButton);
}
}
public class MenuActivity extends Activity {
public static Button searchButton;
@Override
protected void onCreate() {
SearchView searchView = new SearchView(this);
}
}
并在活动中将searchButton声明为公共静态
public class MenuActivity extends Activity {
public static Button searchButton;
@Override
protected void onCreate() {
SearchView searchView = new SearchView(this);
}
}
希望它能帮助你。完成后请告诉我。您有不同的选择 第一个: 创建getter以从类中获取值:
public MenuActivity getMenuActivityVar(){
return this.MenuActivity;
}
从使用此方法的其他活动中,例如:
//Other activity or class
//Declare a new var as your class
SearchView sView = new SearchView();
MenuActivity nMenu = sView.getMenuActivityVar();
SearchView sView = new SearchView();
//In this moment your var are null.
MenuActivity MyNewMenu = sView.menuActivity;
第二个:
在本例中,is static方法意味着所有静态变量都有一个静态值,您不需要从这个静态值声明一个新类,因为它是静态的
public static class SearchView {{
public static MenuActivity menuActivity;
.
.
}
通过此更改,您可以使用以下命令调用此变量:
//This call it's do it from other activity
MyNewVar = SearchView.MenuActivity;
第三个:
当您创建这样的类时,从其他活动:
//Other activity or class
//Declare a new var as your class
SearchView sView = new SearchView();
MenuActivity nMenu = sView.getMenuActivityVar();
SearchView sView = new SearchView();
//In this moment your var are null.
MenuActivity MyNewMenu = sView.menuActivity;
例如,如果您通过方法在类中修改此变量,则可以使用以下方法获取该变量:
//Other activity or class
//Declare a new var as your class
SearchView sView = new SearchView();
MenuActivity nMenu = sView.getMenuActivityVar();
SearchView sView = new SearchView();
//In this moment your var are null.
MenuActivity MyNewMenu = sView.menuActivity;
我认为最好的选择是首先,它是类中最重要的部分,从类中获取和设置。告诉我我是否帮助过你和优秀的编程 什么是空对象?R?可能menuActivity.searchButton不是图像视图?请先检查一下为什么要自己创建menuactivity?您必须从其他地方传递它,并且必须在活动中定义公共方法来调用它们。您永远不应该实例化活动类。如果希望视图位于另一个活动中,则需要在布局中具有相同的视图。还有什么是
SearchView
,为什么需要相同的?这一个很有效,谢谢。顺便说一句,我没有试过其他的。我试过了,之前是“-1”: