例如我有一个 Activity 课。在这个类中我有一些变量,我想在另一个类中使用它们。这是代码:
public class SearchView {
private MenuActivity menuActivity;
public SearchView() {
menuActivity = new MenuActivity();
menuActivity.searchButton = (ImageView) menuActivity.findViewById(R.id.searchButton);
}
}
最后一行给出了一个NullPointerException
。我知道我需要对其进行初始化,但我该如何初始化 Activity ?
你有不同的选择......
第一个:
创建一个 getter 以从类中获取值:
public MenuActivity getMenuActivityVar(){
return this.MenuActivity;
}
来自其他使用这种方法的 Activity :
//Other activity or class
//Declare a new var as your class
SearchView sView = new SearchView();
MenuActivity nMenu = sView.getMenuActivityVar();
第二个:
在这种情况下,是一个静态方法意味着所有静态变量都有一个静态值,你不需要从这个类中声明一个新类,因为它是静态的。
public static class SearchView {{
public static MenuActivity menuActivity;
.
.
}
通过此更改,您可以使用以下方式调用此 var:
//This call it's do it from other activity
MyNewVar = SearchView.MenuActivity;
第三个:
public class SearchView {
public MenuActivity menuActivity;
}
当您创建这样的类时,来自其他 Activity :
SearchView sView = new SearchView();
//In this moment your var are null.
如果你在你的类中从方法中修改这个 var,那么你可以像这样使用 var:
MenuActivity MyNewMenu = sView.menuActivity;
我认为最好的选择是第一个,它是类中最重要的部分 getters 和 setters from classes。告诉我我是否帮助了你和好的编程!
我是一名优秀的程序员,十分优秀!