Java 使用从SQLite数据库检索的信息创建工作ListView活动

Java 使用从SQLite数据库检索的信息创建工作ListView活动,java,android,eclipse,android-sqlite,Java,Android,Eclipse,Android Sqlite,我正在进行一个项目,该项目要求我在第一个活动的列表视图中显示国家列表,当按下其中任何一个时,它将打开一个新活动,并相应显示相应的数据。我正试图使用SQLite数据库实现这一点 我不确定我的代码出了什么问题,我已经做了几个小时了,似乎仍然找不到问题所在 这是我的主要活动: 公共类MainActivity扩展了ListActivity{ private DatabaseHelper dbHelper; private SimpleCursorAdapter dataAdapter; @Ove

我正在进行一个项目,该项目要求我在第一个活动的列表视图中显示国家列表,当按下其中任何一个时,它将打开一个新活动,并相应显示相应的数据。我正试图使用SQLite数据库实现这一点

我不确定我的代码出了什么问题,我已经做了几个小时了,似乎仍然找不到问题所在

这是我的主要活动:

公共类MainActivity扩展了ListActivity{

 private DatabaseHelper dbHelper;
 private SimpleCursorAdapter dataAdapter;

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  dbHelper = new DatabaseHelper(this);
  dbHelper.open();

  //Generate ListView from SQLite Database
  displayListView();
 }


 String [] countries = new String []{
         DatabaseHelper.COUNTRY
 };

 private void displayListView() {


  Cursor cursor = dbHelper.fetchAllCountries();

  // The desired columns to be bound
  String[] columns = new String[] {
            DatabaseHelper.COUNTRY,
            DatabaseHelper.CAPITAL,
            DatabaseHelper.CURRENCY,
            DatabaseHelper.POPULATION
          };


  // the XML defined views which the data will be bound to
  int[] to = new int[] { 
            R.id.text
  };

  // create the adapter using the cursor pointing to the desired data 
  //as well as the layout information
  dataAdapter = new SimpleCursorAdapter(
    this, R.layout.country_info, 
    cursor, 
    countries, 
    to,
    0);

  ListView listView = (ListView) findViewById(R.id.label);
  // Assign adapter to ListView
  listView.setAdapter(dataAdapter);


  listView.setOnItemClickListener(new OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> listView, View view, 
     int position, long id) {
   // Get the cursor, positioned to the corresponding row in the result set
   Cursor cursor = (Cursor) listView.getItemAtPosition(position);

适配器正在查找数据库查询返回的名为_id的列。您可以将主键更改为_id,也可以在数据库上运行select查询

"SELECT 'selectColumns' 'yourPrimaryKey' as _id from 'yourTableName'"

你确定你运行的是正确的应用程序吗?在Eclipse中检查你的运行配置设置,你每次都可能启动你的旧应用程序。@RScottCarson是的,只是仔细检查并确保不是旧应用程序在运行。你是否复制了旧的清单文件或旧项目中可能导致麻烦的任何内容?@RScottCarson我没有从我的旧项目复制粘贴到这里,因为它们是相似的,但这是清单上说的,在databasehelper.java中立即写入。我将其更改为私有静态最终字符串KEY_ID=_ID;正如我从您那里了解到的,我似乎仍然有一个问题,让应用程序在仿真平台上运行,实际上这样做,LogCat状态中的新错误没有这样的专栏:货币我不明白它为什么这么说?
"SELECT 'selectColumns' 'yourPrimaryKey' as _id from 'yourTableName'"