これは私の問題です。いくつかの値を格納するように SQLite DB をセットアップしています。この場合、それは非常に単純です。2 つの列 (_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")));
}
}
その位置でのカーソルの値を教えてくれる最後のログを設定しました。DB に入力された値は常に出力されるので、カーソルが入力されていることがわかります。ここで私が間違っていることを誰か知っていますか?
編集:アクティビティの開始時にこれが呼び出された後、LogCat は次の 2 行を示します。
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
挿入: open(); // データベースを開きます。database.execSQL("INSERT INTO 連絡先(名前) 値('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);
}