在Android中重用不同活动中的方法

时间:2011-10-04 05:16:21

标签: android methods android-activity reusability

是否可以在不同的活动中重用方法?比方说,我在retrieveAllStudents()中有StudentActivity。我可以将其设置为静态或其他内容并在ClassActivity中调用该方法吗?或者我是否需要在两个活动中复制该方法?

哪一个是正确的?

示例1:

StudentActivity

public static ArrayList<Student> retrieveAllStudents(){
    ...
    return studentList;
}

ClassActivity

import StudentActivity

ArrayList<Student> studentList= StudentActivity.retrieveAllStudents();

示例2:

StudentActivity

public static ArrayList<Student> retrieveAllStudents(){
    ...
    return studentList;
}

ClassActivity

public static ArrayList<Student> retrieveAllStudents(){
    ...
    return studentList;
}

ArrayList<Student> studentList= retrieveAllStudents();

3 个答案:

答案 0 :(得分:1)

如果是public static,它绝对可以从其他活动(以及您应用中的任何其他类)访问。但是,当活动相互调用函数时,可能会导致代码过于复杂。考虑将getStudent()函数和其他共享功能移动到单独的Student类。

编辑是的,可以在其他类中重用方法。这很常见,被认为是最佳做法。给出两个例子,第一个更正确。

答案 1 :(得分:0)

如果它是泛型方法,则将其保存在Application类中,创建应用程序类的静态上下文

public static Context getAppContext() { return context; };

答案 2 :(得分:0)

根据我的观点,更好的方法是使用必要的方法创建类(只是类而不是Activity),然后在Activity中创建该公共方法类的实例,并在需要时使用方法。 (example

其他解决方案是从ClassActivity扩展StudentActivity,如果它们都需要是活动,而不是这里的情况。

无论如何,您可能应该再次考虑应用程序中的活动类别。 阅读有关activities的内容可能会有所帮助。 然后我建议根据您的需要使用上述两种方法中的一种。这样可以防止因Android系统从堆栈中移除您的活动而导致的问题(您也可以阅读活动lifecycle)。

干杯