2012-03-31 7 views
0

アンダーードのSQLiteのアンケートアプリケーション用のデータベースベースです。取られた各調査は、データベースに格納されているレコードです。データベースからのエントリの表示に関する問題

私は正常にデータベースを作成しました(そしてデータベースは存在します - 私はSQLiteブラウザを使ってすべてのレコードを調べました)。

しかし、いくつかの調査が行われた後、すべてのレコードが表示される問題があります。最初の調査のみがアクティビティに表示されます。それらがメモリ内に存在しても、他のレコードは表示されません。私の単純なカーソルアダプタで何か問題がありますか?

ここに私のデータベースクラスです:

package nidhin.survey; 


import android.app.Activity; 
import android.app.ListActivity; 
import android.content.Intent; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 
import android.widget.TextView; 

public class Database extends Activity { 
    private static final SimpleCursorAdapter SimpleCursorAdapter = null; 


    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.database); 

     ListView lv=(ListView)findViewById(R.id.mylist); 
     lv.setClickable(true); 

     Button button1 = (Button)findViewById(R.id.button1); 
     button1.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 


     Intent intent=new Intent(Database.this,MainMenu.class); 
      startActivity(intent); 

      } 
     }); 


     Intent sender=getIntent(); 

     DatabaseHelper dbh = new DatabaseHelper(this); 

     Cursor c = dbh.getReadableDatabase().rawQuery("SELECT _id, " + 
         DatabaseHelper.COL_NAME + 
       ", " + DatabaseHelper.VALUE1 + 
       ", " + DatabaseHelper.VALUE2 + 
       " FROM " + 
       DatabaseHelper.TABLE_NAME, null); // initializing 

     String[] dataFrom ={DatabaseHelper.COL_NAME, DatabaseHelper.VALUE1, DatabaseHelper.VALUE2};//, DatabaseHelper.VALUE3, DatabaseHelper.VALUE4, DatabaseHelper.VALUE5, DatabaseHelper.VALUE6, DatabaseHelper.VALUE7, DatabaseHelper.VALUE8, DatabaseHelper.VALUE9, DatabaseHelper.VALUE10, DatabaseHelper.VALUE11}; 
     int[] dataTo = {R.id.name, R.id.value1, R.id.value2};//, R.id.value3, R.id.value4, R.id.value5, R.id.value6, R.id.value7, R.id.value8, R.id.value9, R.id.value10, R.id.value11}; 

     SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
       R.layout.row, c, dataFrom, dataTo); 

     lv.setAdapter(adapter); 

    } 

    public void onListItemClick() 
    { 

    } 


} 

とデータベースのヘルパー:(データベースヘルパーで

package nidhin.survey; 

import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.util.Log; 

public class DatabaseHelper extends SQLiteOpenHelper { 

static final String TABLE_NAME = "mygrades"; 
static final String COL_NAME = "name"; 
static final String VALUE1 = "ClassNumber"; 
static final String VALUE2 = "value2"; 
static final String VALUE3 = "value3"; 
static final String VALUE4 = "value4"; 
static final String VALUE5 = "value5"; 
static final String VALUE6 = "value6"; 
static final String VALUE7 = "value7"; 
static final String VALUE8 = "value8"; 
static final String VALUE9 = "value9"; 
static final String VALUE10 = "value10"; 
static final String VALUE11 = "value11"; 


DatabaseHelper(Context context) 
{ 
    super(context, "grades.sqlite", null, 20); 
} 

@Override 
public void onCreate(SQLiteDatabase db) 
{ 


    db.execSQL("CREATE TABLE " + TABLE_NAME + 
       "(_id INTEGER PRIMARY KEY AUTOINCREMENT, " + 
       COL_NAME + " TEXT, " + 
       VALUE1 + " TEXT, " + 
       VALUE2 + " TEXT, " + 
       VALUE3 + " TEXT, " + 
       VALUE4 + " TEXT, " + 
       VALUE5 + " TEXT, " + 
       VALUE6 + " TEXT, " + 
       VALUE7 + " TEXT, " + 
       VALUE8 + " TEXT, " + 
       VALUE9 + " TEXT, " + 
       VALUE10 + " TEXT, " + 
       VALUE11 + " TEXT);"); 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
{ 
    android.util.Log.w("cars", "Upgrading database, all table info will be lost"); 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); 
    onCreate(db); 
} 

} 
+1

は、あなたが同じレコードを更新する代わりに新しいレコードを挿入するかもしれませ??あなたはデータベースのレコードをチェックしましたか?データベースは /data/data/YOUR PACKAGE NAME/databases/DB NAME.db –

+0

にありますか?前の質問で問題を解決したとお伝えしましたか? – Luksprog

+0

私はチェックしてみよう...... –

答えて

0

はこれを試してみてください

もう一度これを試すことができます5つのヌルがあるはずです)

Cursor c = dbh.fetchAllSurveys(); 
String[] dataFrom ={DatabaseHelper.COL_NAME, DatabaseHelper.VALUE1, DatabaseHelper.VALUE2}; 
int[] dataTo = {R.id.name, R.id.value1, R.id.value2}; 
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.row, c, dataFrom, dataTo); 
lv.setAdapter(adapter); 

は、この情報がお役に立てば幸い:!:あなたのonCreateそれは次のように使用されるで

public Cursor fetchAllSurveys() { 
    return mDb.query(TABLE_NAME, new String[] { "_id", COL_NAME, VALUE1,VALUE2 }, null, null, null, null, null); 
} 

このラインを割り当てる前に

if (c !=null) 
{ 
    c.moveToFirst(); 
} 

+0

メンバーのランクとステータスは? –

+0

これらは列IDです。VALUE1、VALUE 2などに変更されます。 – Barak

+0

5列MEMBER_ROWID、 MEMBER_LAST、MEMBER_FIRST、MEMBER_RANK、MEMBER_STATUSがあります。しかし私は3列しか持っていません –

0

は次のように、Cursor.moveToFirstを呼び出し

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
       R.layout.row, c, dataFrom, dataTo); 
+0

この文はcを最初の行に移動しますか?しかし、我々はすべてのレコードを正しく取得したいでしょうか? –

+0

ちょうどそれを試してみて、それは動作します! –

+0

私はちょうど言ったような単純なアダプタラインの前にそれを置いてみましたが、それでも同じです:-( –

関連する問題