Java如何在另一个类中使用 Activity 方法

标签 java android android-activity

例如我有一个 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。告诉我我是否帮助了你和好的编程!

关于Java如何在另一个类中使用 Activity 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31606693/

相关文章:

java - toJSONString() 未为 JSONObject 类型定义

android - 将应用程序图标存储在可绘制文件夹中

android - 自定义 EditText 不会在特定位置编辑项目,但总是从最后一个项目开始编辑

java - 在创建之前将 bundle 发送到主/启动器 Activity ?

android - 如何测试使用 ActivityResult API 的 Activity?

java - Eclipse 调试器不会在条件断点处停止

java - 将金钱转换成所有可能的组合

java - java.lang.Object 的泛型不能转换为 [Ljava.lang.Object

android - React-Native Animated 在低端 Android 手机中落后

android - 如何绑定(bind) startActivity() 需要 FLAG_ACTIVITY_NEW_TASK?