0

意図的なサービスなしで、アクティビティ ページから dbhelper クラスにデータを渡す方法を知る必要があります。サーバーからデータを取得し、そのデータをデータベースに渡しています。私は本当に混乱しています。

私はこのようにデータを保存しました

public static HashMap<String, Object> listhashmap;

私はそれをdbhelperクラスに渡します、私は使用しました

listitems = FirstActivity.arraylistitems;

ここにコードがあります

    public DBHelper(Context context) {
            super(context, DBName, null, version);
            currentContext = context;

            newarraylistitems = FirstActivity.arraylistitems;
            System.out.println("newarraylistitems="+newarraylistitems);

            DBPath = "/data/data/" + context.getPackageName() + "/databases";
            createDatabase();

        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // TODO Auto-generated method stub

        }

        private void createDatabase() {
            boolean dbExists = checkDbExists();

            /* ("ID" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE ,
                         "user_message_id" VARCHAR DEFAULT NA, "message" VARCHAR DEFAULT
                         NA, "title" VARCHAR DEFAULT NA, "message_time" VARCHAR DEFAULT NA, "mp3" VARCHAR DEFAULT NA,
                         "userID" VARCHAR DEFAULT NA)*/


            if (dbExists) {
                // do nothing
            } else {
                DB = currentContext.openOrCreateDatabase(DBName, 0, null);
    DB.execSQL("CREATE TABLE IF NOT EXISTS " +tableName +" (ID INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE, " +
            "user_message_id VARCHAR DEFAULT NA," +"message VARCHAR DEFAULT NA," + "title VARCHAR DEFAULT NA)"+
            "mp3 VARCHAR DEFAULT NA "+ "userID VARCHAR DEFAULT NA;");


////some dummy contents
                DB.execSQL("INSERT INTO " +     
                        tableName +
                        " Values ('M','Sing','India',25);");
                DB.execSQL("INSERT INTO " +
                        tableName +
                        " Values ('C','Raje','India',25);");
                DB.execSQL("INSERT INTO " +
                        tableName +
                        " Values ('D','Phonu','Argentina',20);");
                DB.execSQL("INSERT INTO " +
                        tableName +
                        " Values ('V','Veera','EU',25);");
                DB.execSQL("INSERT INTO " +
                        tableName +
                        " Values ('T','Shenoi','Bangla',25);");
                DB.execSQL("INSERT INTO " +
                        tableName +
                        " Values ('L','Lamha','Australia',20);");
            }


        }

        private boolean checkDbExists() {
            SQLiteDatabase checkDB = null;

            try {
                String myPath = DBPath + DBName;
                checkDB = SQLiteDatabase.openDatabase(myPath, null,
                        SQLiteDatabase.OPEN_READONLY);

            } catch (SQLiteException e) {

                // database does't exist yet.

            }

            if (checkDB != null) {

                checkDB.close();

            }

            return checkDB != null ? true : false;
        }
    }

listview のベース アダプターは既に作成しています。アクティビティ ページのハッシュマップ データを取得して dbhelper クラスに渡す方法は他にありますか? dbhelper クラスでlistitems作成hashmapしたものを次に示します。

誰か助けてくれませんか @Thanks

4

1 に答える 1