Java Android:我如何使用为我自己的类中的活动定义的方法?

Java Android:我如何使用为我自己的类中的活动定义的方法?,java,android,Java,Android,我的应用程序有多个以不同方式使用同一数据库的活动。数据会定期从我的应用程序外部添加到数据库中。因此,我没有复制代码来检查每个活动中的数据库,而是尝试创建一个类,可以从任何活动中使用该类来检查数据库中的新条目。我使用fileInputStream和openFileInput方法打开一个文件,该文件包含一些首选项,用于确定应用程序是否对新数据库条目感兴趣。在每个活动中使用openFileInput方法都可以正常工作,但在我自己的类中使用它会导致错误,即openFileInput()方法未定义。我已导

我的应用程序有多个以不同方式使用同一数据库的活动。数据会定期从我的应用程序外部添加到数据库中。因此,我没有复制代码来检查每个活动中的数据库,而是尝试创建一个类,可以从任何活动中使用该类来检查数据库中的新条目。我使用fileInputStream和openFileInput方法打开一个文件,该文件包含一些首选项,用于确定应用程序是否对新数据库条目感兴趣。在每个活动中使用openFileInput方法都可以正常工作,但在我自己的类中使用它会导致错误,即openFileInput()方法未定义。我已导入java.io.FileInputStream,但错误仍然存在。

openFileInput是上下文的成员。你应该将你的活动传递给你的类(作为一个上下文)并从那里调用它

public class MyClass{
  protected Context mContext;
  public MyClass(Context c)
  {
    mContext = c;
  }
  public void doSomething()
  {
    mContext.openFileInput(...)
  }
}

您可以使用继承:

public class ActivityWithDBManagementAbilities extends Activity{
    public YourAnswerType checkDB(YourParameterType parameter){
        //here the code that check the data base   
    }
}
然后您的活动从该类扩展而来(真正的活动使用父方法而不复制代码)。例如:

public class MyActivity1 extends ActivityWithDBManagementAbilities{

     //inside some method.
     YourAnswerType  dbStatus = checkDB(yourParam);

}

我还没有测试过它,但它应该能用。

效果很好!谢谢。