显示来自sqlite的数据

时间:2013-11-30 09:42:40

标签: android sqlite

我在显示来自数据库sqlite的数据时遇到问题,我找了一个解决方案

在这里我确实找到了很多,但我无法使它工作,我得到的错误是:发生错误:

java.lang.IllegalArgumentException:列'_id'不存在!!

我的代码是:

  public class MainActivity extends ListActivity {

private static final int FLAG_REGISTER_CONTENT_OBSERVER = 2;
private Cursor cursor;
private ArrayList<String> arr;
SimpleCursorAdapter adapter = null;
Cursor c;
DBAdapter db = new DBAdapter(this);
 @SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {

    try {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        db.open();
        Button suivant = (Button)findViewById(R.id.com_quest);

        suivant.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
            Intent l = new Intent(MainActivity.this,ActivityUn.class);
            startActivity(l);

        }
        });

        populateListViewFromDB();

    } catch (Exception e) {
        Log.e("ERROR", "Error occured: " + e.toString());
        e.printStackTrace();
    }
}



@SuppressWarnings("deprecation")
private void populateListViewFromDB() {
Cursor cursor = db.getAllRecords();
startManagingCursor(cursor);

Log.i("MyApp", "Total users: " + cursor.getCount());
Toast.makeText(getApplicationContext(),
        "Number of rows: " + cursor.getCount(), Toast.LENGTH_LONG)
        .show();

String[] databaseColumnNames = new String[] { DBAdapter._id };
int[] toViewIDs = new int[] { R.id.text };

SimpleCursorAdapter myCursordapter = new SimpleCursorAdapter(this,R.layout.activity_main, cursor, databaseColumnNames, toViewIDs,FLAG_REGISTER_CONTENT_OBSERVER);

ListView list = (ListView) findViewById(android.R.id.list);

list.setAdapter(myCursordapter);
         }  }

并且在dbadapter中是:

   private static final String MENAGE = "table_MENAGE";

   public static final String _id = "Num_du_Questionnaire";

     public Cursor getAllRecords() {
     return db.query(MENAGE, new String[] { _id
             }, null, null, null,
             null, null);
   }

1 个答案:

答案 0 :(得分:1)

所有CursorAdapters要求Cursor包含名为_id的列。您的Cursor只包含一个名为Num_du_Questionnaire的列。