是否可以在不同的活动中重用方法?比方说,我在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();
答案 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)。
干杯