如何从Activity调用外部类的方法?

时间:2013-02-21 15:30:53

标签: android sqlite

首先让你知道我是Android新手。

尝试创建多个类来处理数据库表操作。创建了一个数据库帮助程序,如下所示:

 public class WSDatabaseHelper extends SQLiteOpenHelper {

        private static final String DATABASE_NAME = "wsemp";
        private static final int DATABASE_VERSION = 5;

        public WSDatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase database) {
            .............
        }

        @Override
    public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
            ................
        }
    }

创建了一个处理数据库表操作的类:

public class CustomerBean {
    private WSDatabaseHelper database;

    @Override
    public boolean onCreate() {
        database = new WSDatabaseHelper(getContext());
        return false;
    }

public boolean insertObject(valObj) {
    SQLiteDatabase db = database.getWritableDatabase();
    db.insert(.......);
    }
}

但是现在我不确定如何从我的活动或会话文件中调用这个insertObject函数。我试过CustomerBean.isnertObject(obj),但它要求将方法更改为静态。

2 个答案:

答案 0 :(得分:2)

在这种情况下,有两种方法可以调用方法

  1. 创建类的对象并调用方法

      // Create object
     CustomerBean customerBean = new CustomerBean();
    
     // call the method
     customerBean.insertObject(<insert object here>);
    
  2. 使方法成为静态,并从类名

    中调用它
    // In CustomerBean class
    public static boolean insertObject(valObj) {
       SQLiteDatabase db = database.getWritableDatabase();
       db.insert(.......);
    }
    
    //In WSDatabaseHelper class
    CustomerBean.insertObject(<object name here>);
    
  3. 在这里要纠正的更多事情是在 CustomerBean 类中编写了

      @Override
       public boolean onCreate() {
         database = new WSDatabaseHelper(getContext());
         return false;
       }
    

    哪个不对。 Android的Activity类的onCreate()方法 只有当您的班级正在扩展活动

    时,您才可以为此方法添加 @Override 注释

    希望这会对你有所帮助

答案 1 :(得分:0)

static修饰符添加到您的方法中。然后你应该能够在类之间访问它。