【发布时间】:2016-01-04 11:47:54
【问题描述】:
我是 android 开发新手,在微调器中加载数据库 SQLITE 值时遇到问题。我总是被强制关闭
这是我的代码
数据库处理程序.java
public void onCreate(SQLiteDatabase db) {
String creation_query5 = "CREATE TABLE food (name text primary key, calorie integer)";
db.execSQL(creation_query5);
}
public ArrayList<String> getAllFood(){
ArrayList<String> list=new ArrayList<String>();
// Open the database for reading
SQLiteDatabase db = this.getReadableDatabase();
// Start the transaction.
db.beginTransaction();
try
{
String selectQuery = "SELECT * FROM food";
Cursor cursor = db.rawQuery(selectQuery, null);
if(cursor.getCount() >0)
{
while (cursor.moveToNext()) {
// Add province name to arraylist
String name= cursor.getString(cursor.getColumnIndex("name"));
list.add(name);
}
}
db.setTransactionSuccessful();
}
catch (SQLiteException e)
{
e.printStackTrace();
}
finally
{
db.endTransaction();
// End the transaction.
db.close();
// Close database
}
return list;
}
public void insertFood(String pname, int cal) {
// Open the database for writing
SQLiteDatabase db = this.getWritableDatabase();
// Start the transaction.
db.beginTransaction();
ContentValues values;
try
{
values = new ContentValues();
values.put("name", pname);
values.put("calorie",cal);
// Insert Row
db.insert("food", null, values);
// Insert into database successfully.
db.setTransactionSuccessful();
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
db.endTransaction();
// End the transaction.
db.close();
// Close database
}
}
MainActivity.java (在创建方法中)
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
spinner=(Spinner) findViewById(R.id.spinner);
tv=(TextView) findViewById(R.id.textView7);
db.insertFood("potato",50);
db.insertFood("tomato",1);
ArrayList<String> list=db.getAllFood();
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, R.id.text, list);
spinner.setAdapter(adapter);
您能否检查我的代码并指导我哪里出错,任何帮助将不胜感激。
【问题讨论】:
-
太有趣了,我们是人类,我们需要日志
-
写你的activityName.this而不是getApplicationContext()
-
@Rah 我知道我可能看起来很傻,但是我怎样才能得到日志是 logcat
-
@jyomin tnx 我按你说的改了,我现在可以打开活动,但微调器是空的
-
你不能复制粘贴你的 logcat 错误?
标签: android android-sqlite android-spinner