2014-10-28 82 views
-2

我是android开发的新手,这里是我的第一个gridview数据库项目。 它显示错误“指数2请求与2大小”索引2请求大小为2

我使用的SQLite数据库DB文件

这里是我的代码

请帮我!!!!!

public class MainActivity extends Activity { 
SQLiteDatabase mydb; 
GridView data; 

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

    data = (GridView) findViewById(R.id.gridView1); 
    List<String> li = new ArrayList<String>(); 
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(
      getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, 
      li); 
    dataAdapter.setDropDownViewResource(R.layout.activity_main); 
    try { 
     mydb = openOrCreateDatabase(getString(R.string._sdcard_sales_db), MODE_PRIVATE, null); 
     Cursor cr = mydb.rawQuery("SELECT * FROM users", null); 
     if (cr != null) { 
      if (cr.moveToFirst()) { 
       do { 
        String desc = cr.getString(cr.getColumnIndex("user")); 
        li.add(desc); 
       } while (cr.moveToNext()); 
       Toast.makeText(getApplicationContext(), cr.getString(cr.getColumnIndex("user")), 
         Toast.LENGTH_LONG).show(); 
      } else { 
       Toast.makeText(getApplicationContext(), "no data", 
         Toast.LENGTH_LONG).show(); 

      } 
     } 
     cr.close(); 
     mydb.close(); 
    } catch (Exception e) { 
     Toast.makeText(getApplicationContext(), "ERROR" + e.getMessage(), 
       Toast.LENGTH_LONG).show(); 

    } 

}} 

在此先感谢

+0

错误显示在哪一行? – duggu 2014-10-28 11:05:44

+0

运行模块时没有先生它发生 – 2014-10-28 11:12:07

+0

pl发布您的logcat – micky 2014-10-28 11:13:23

回答

1
do { 
    String desc = cr.getString(cr.getColumnIndex("user")); 
    li.add(desc); 
} while (cr.moveToNext()); 
Toast.makeText(getApplicationContext(), cr.getString(cr.getColumnIndex("user")), 
     Toast.LENGTH_LONG).show(); 

的do-while循环后,光标cr指向最后一个有效行后的行。

删除Toast,如果调用getString()时出现无效光标索引,或者将其更改为烘烤实际需要的信息。

+0

我实际上做的 – 2014-10-28 11:22:15

+0

Thx很多工作 – 2014-10-28 12:34:56

相关问题