【问题标题】:Android: How can I use methods defined for Activities in my own classes?Android:如何在我自己的类中使用为活动定义的方法?
【发布时间】:2011-02-02 21:56:08
【问题描述】:

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

【问题讨论】:

    标签: java android


    【解决方案1】:

    openFileInput 是 Context 的成员。您应该将您的活动传递给您的班级(作为上下文)并从那里调用它。

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

    【讨论】:

    • 像魅力一样工作!非常感谢。
    【解决方案2】:

    你可以使用继承:

    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);
    
    }
    

    我还没有测试它,但它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-08
      • 2023-04-06
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 2013-07-17
      相关资源
      最近更新 更多