0

首先让您知道我是 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) 但它要求将方法更改为静态。

4

2 回答 2

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

这里要纠正的更多事情是在CustomerBean类中你已经写了

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

这是不正确的。Android Activity 类的 onCreate() 方法,只有当您的类扩展Activity类时,您才能为该方法添加 @Override注解

希望对你有帮助

于 2013-02-21T15:45:54.153 回答
0

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

于 2013-02-21T15:38:20.003 回答