私はAndroid開発の初心者です。データベースを作成し、その中に要素を挿入しようとしています(putData()
)。
アプリは何のエラーもなく実行されていますが、要素は表示されず、黒いアクティビティのみ表示されます。私が間違って何が起こっているか分からない
、SQLiteデータベースを表示
DBHelperクラス
public class DBHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "food.db";
public static final String TABLE_NAME = "food_calorie";
public static final String COL_1 = "ID";
public static final String COL_2 = "NAME";
public static final String COL_3 = "CALORIE";
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
SQLiteDatabase db = this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,CALORIE INTEGER)");
putData();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
onCreate(db);
}
public void putData(){
insertData("Apple", 168);
insertData("Mango", 194);
}
public void insertData(String name, int calorie){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues CV=new ContentValues();
CV.put(COL_2,name);
CV.put(COL_3,calorie);
db.insert(TABLE_NAME,null,CV);
db.close();
}
public String printDB(){
String dbString="";
SQLiteDatabase db=this.getWritableDatabase();
String query="SELECT * FROM " + TABLE_NAME + " WHERE 1";
Cursor c= db.rawQuery(query,null);
//Move to the first row in your result
c.moveToFirst();
while(!c.isAfterLast()){
if(c.getString(c.getColumnIndex("TABLE_NAME"))!=null){
dbString+= c.getString(c.getColumnIndex("TABLE_NAME"));
dbString += "\n";
}
}
db.close();;
return dbString;
}
}
MinActivityクラス
public class MainActivity extends AppCompatActivity {
DBHelper MyDb;
TextView showDBText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showDBText=(TextView) findViewById(R.id.showDB);
MyDb = new DBHelper(this);
printDatabase();
}
// Buckys Video 54
public void printDatabase(){
//printDB is a function in DBHelper
String dbString = MyDb.printDB();
showDBText.setText(dbString);
}
}
XMLファイル
を助けてください210
は '、あなたの妄想で' ... + "WHERE 1" の意味である私たちに説明してもらえます! –
ここで、1はすべての条件が満たされていることを意味します。 私はthenewbostonからメソッドをコピーしました。初心者のためのアプリ開発 - 53 - データベースの結果を印刷 –
その**ばかげた、役に立たない、潜在的に危険な状態を**削除**してください!単に** ** WHERE条件なしでは、すべての条件が満たされます。 –