Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:从SQLite数据库填充GridtView_Sqlite_Gridview - Fatal编程技术网

Android:从SQLite数据库填充GridtView

Android:从SQLite数据库填充GridtView,sqlite,gridview,Sqlite,Gridview,在将数据保存到数据库中时,Gridview未填充Sqlite数据库中的任何数据。Logcat也没有生成任何错误 我的数据库是 public Cursor getAllRows() { SQLiteDatabase db = this.getReadableDatabase(); //String where = null; Cursor c = db.rawQuery("SELECT * FROM " + DATAALL_TABLE, null); if (c != null)

在将数据保存到数据库中时,Gridview未填充Sqlite数据库中的任何数据。Logcat也没有生成任何错误

我的数据库是

public Cursor getAllRows() {
  SQLiteDatabase db = this.getReadableDatabase();
  //String where = null;
  Cursor c = db.rawQuery("SELECT  * FROM " + DATAALL_TABLE, null);
  if (c != null) {
    c.moveToFirst();
  }
  return c;
}
主要活动

public void populateListView() {

  Cursor cursor = db.getAllRows();
  String[] fromFieldNames = new String[] {
    DBHelper.COURSES_KEY_FIELD_ID1, DBHelper.FIELD_MATERIALDESC, DBHelper.FIELD_MATERIALNUM
  };
  int[] toViewIDs = new int[] {
    R.id.textView1, R.id.textView3, R.id.textView2
  };
  SimpleCursorAdapter myCursorAdapter;
  myCursorAdapter = new SimpleCursorAdapter(getBaseContext(), android.R.layout.activity_list_item, cursor, fromFieldNames, toViewIDs, 0);
  GridView myList = (GridView) findViewById(R.id.gridView1);
  myList.setAdapter(myCursorAdapter);

}
向尊敬的成员@MikeT发帖,告知其工作良好,但需要调整

原样

预期格式


假设表中有数据,您的问题可能是R.id.textView1。。。。3与传递给SimpleCorsorAdapter的布局无关。i、 e.您的问题可能与传递给SimpleCorsOrAdapter的布局和作为传递给Id的视图Id的组合有关

如果要使用:-

    gridview = this.findViewById(R.id.gridView1);
    csr = DBHelper.getAllRows();
    myCursorAdapter = new SimpleCursorAdapter(
            getBaseContext(),
            //android.R.layout.simple_list_item_2,
            android.R.layout.activity_list_item,
            csr,
            new String[]{
                    SO50674769DBHelper.COURSES_KEY_FIELD_ID1
                    //SO50674769DBHelper.FIELD_MATERIALDESC,
                    //SO50674769DBHelper.FIELD_MATERIALNUM
            },
            new int[]{android.R.id.text1}, //<<<< ID of the available view
            0
    );
    gridview.setAdapter(myCursorAdapter);

谢谢你的作品。但是gridview对齐方式需要改变,它也允许我显示2个以上的文本。我需要添加2个以上。上面给出的修改要求您能就以下内容提供建议吗requet@Leace我和图形/用户界面看起来不那么友好,也就是说,我对这类事情毫无希望。从来没有使用过gridview,最好是在这个问题上提出一个新问题。
    gridview = this.findViewById(R.id.gridView1);
    csr = DBHelper.getAllRows();
    myCursorAdapter = new SimpleCursorAdapter(
            getBaseContext(),
            android.R.layout.simple_list_item_2,
            //android.R.layout.activity_list_item, //<<<< Changed Layout
            csr,
            new String[]{
                    SO50674769DBHelper.COURSES_KEY_FIELD_ID1,
                    SO50674769DBHelper.FIELD_MATERIALDESC,
                    //SO50674769DBHelper.FIELD_MATERIALNUM
            },
            new int[]{android.R.id.text1, android.R.id.text2}, //<<<< ID's of the 2 views
            0
    );
    gridview.setAdapter(myCursorAdapter);
public Cursor getAllRows() {
  SQLiteDatabase db = this.getReadableDatabase();
  return db.rawQuery("SELECT  * FROM " + DATAALL_TABLE, null);
}