这是我的问题:我设置了一个 SQLite DB 来存储一些值。在这种情况下,它非常简单。两列(_id,名称)。我知道数据正在存储在数据库中,并且我知道用于传递该信息的游标也在填充。但是,当我尝试将光标值添加到 ArrayList 时,出现错误。这是我的问题方法的代码:
public void sqltest(LDatabase LConnector){
cursor = LConnector.getAllRecords(); //gets the cursor from my db
try{
cursor.moveToFirst();}
catch (Exception e){
log.i("Failed", "Couldn't moveToFirst"); //I get a successful moveToFirst
}
while(cursor.moveToNext()){
try{
getWork.add(cursor.getString(cursor.getColumnIndex("name")));
} catch (Exception h){
Log.i("FAILED", cursor.getString(cursor.getColumnIndex("name")));
}
}
我设置了最后一个日志来告诉我光标在那个位置的值。为数据库输入的值总是打印出来,所以我知道光标正在被填充。有人知道我在这里做错了什么吗?
编辑:当活动开始时,LogCat 显示这两行:
04-12 23:26:26.606: I/MOVED(9478): MOVED TO FIRST
04-12 23:26:26.606: I/FAILED(9478): test1
没有更详细的错误可以更好地描述它,这就是我如此困惑的原因。它根本没有存储到 AssetList 中。
这是 getAllRecords() 方法的代码:
public Cursor getAllLifts() throws SQLiteException
{
open();
return database.rawQuery("SELECT * FROM contacts"+";", null);
}
此外,这里是创建代码 + 用于插入的代码:
创造:
String createQuery = "CREATE TABLE contacts" +
"(_id auto_increment integer primary key," +
"name text);";
db.execSQL(createQuery); // execute the query
插入:打开();// 打开数据库 try{ // 稍后添加更多以从 usr 获取要插入的数据,只是为了测试 database.execSQL("INSERT INTO contacts(name) VALUES('test1')"); database.execSQL("插入联系人(姓名) VALUES('test2')");}
catch (Exception insert){
Log.i("INSERT", "INSERT FAILED");
}
close(); // close the database
编辑:带进口的其余活动
package com.jydev.llogger2;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.content.Context;
import android.database.Cursor;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Create extends Activity implements OnClickListener {
Button buttonNext; //continue button
Button buttonBack; //back button
EditText nameEditText; //editText w/ workout name
EditText commentEditText; //editText w/ comments
Intent info; //intent used to pass extras
String wName = null;
String wComments = null;
ArrayList<String> getWork;
Cursor cursor;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create);
commentEditText = (EditText)findViewById(R.id.commentEditText);
buttonBack = (Button)findViewById(R.id.create_back);
buttonNext = (Button)findViewById(R.id.create_continue);
nameEditText = (EditText)findViewById(R.id.nameEditText);
LtDatabase LConnector = new LDatabase(this);
LConnector.insert();
sqltest(LConnector);
}