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

この状況でメソッドを呼び出す方法は 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 に答える