2011-12-24 12 views
0

申し訳ありませんが、私はこのフォーラムの "スピナーの動的負荷"に取り組んでいますanddev.org私は強制終了エラーを修正しました。 SQL変数は、エミュレータから始まり、私にはロックされていて、カーソルがループに詰まっているように見えますが、logcatはエラーを表示しません。それがどこに固執しているか、または台無しにされているかもしれないという考えはありますか?Android SQLite:rawQueryトラブルシューティング

public static final String KEY_ROWID = "_rowid"; 
    public static final String KEY_ONE = "serial"; 
    public static final String KEY_TWO = "name"; 
    public static final String KEY_THREE = "place"; 

    private static final String KEY_DB = "DbTester"; 
    private static final String KEY_TABLE = "DbTable"; 
    private static final int VERSION = 1; 

    //static final String DB_NAME="contacts"; 
    //static final String NAMES_TABLE="names"; 
    private DbHelper ourHelper; 
    private final Context ourContext; 
    private SQLiteDatabase ourDB; 
    SQLiteDatabase db=null; 

は、ここに私の方法loadSpinnerは(ある)もう情報は、ちょうどそう言うと、私はそれを投稿します必要にされている場合

DbHelper dbhelper=new DbHelper(this.ourContext, KEY_TABLE, null, 2); 
      db=dbhelper.getWritableDatabase(); 

      Cursor c=db.rawQuery("SELECT * FROM "+KEY_TWO, null); 

      if(c != null) { 

      while(!c.isLast()) 
        c.moveToNext(); //I dont understand why but it's necessary (alternative call c.getCount()) 

      String[] from=new String[1]; 
      from[0]="name"; 

      int[] to=new int[1]; 
      to[0]=android.R.id.text1; 


      SimpleCursorAdapter adapter=new SimpleCursorAdapter(this.ourContext, android.R.layout.simple_spinner_item, c, from, to); 


      c.close(); 
      db.close(); 

      return adapter; 
      } 

は、助けるかもしれない何かを考えることはできません。事前のおかげでは、証拠の

答えて

2

3枚は私が参照してください。

1)あなたのエミュレータがロックアップされます。
2)私の経験では、声明はロックアップの原因となっているとよく知られています。
3)あなたはあなたのwhileステートメントが何をしているのか分かりませんが、あなたはそれを必要としています。

試験推奨:

if文でしばらく交換してみてくださいとc.MoveToNext(に一つだけの呼び出しを行う)と、あなたはまだロックアップを取得するかどうかを確認します。もしそうなら、問題を絞りました。

+0

アプリのおかげでトラブルシューティングに大いに役立ちました – acrichm

関連する問題