意図的なサービスなしで、アクティビティ ページから 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