当前位置: 代码迷 >> Android >> SimpleCursorAdapter 出错求各位帮忙看下
  详细解决方案

SimpleCursorAdapter 出错求各位帮忙看下

热度:98   发布时间:2016-04-28 04:24:01.0
SimpleCursorAdapter 报错求各位帮忙看下

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db = new MyDB(this);
cursor = db.select();//查询所有
Log.e("sql onCreate acvitity", ""+cursor.getCount());
et_username = (EditText) super.findViewById(R.id.username);
et_password = (EditText) super.findViewById(R.id.password);
list_show = (ListView) super.findViewById(R.id.listView1);
//使用simpliCursorAdapter
SimpleCursorAdapter simpleCursorAdapter = new SimpleCursorAdapter(this,
R.layout.list_item, cursor, 
new String[]{db.ID,db.NAME,db.PWD}, 
new int[]{R.id.id_item,R.id.name_item,R.id.pwd_item});
list_show.setAdapter(simpleCursorAdapter);
add = (Button) super.findViewById(R.id.button1);
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
add();
}
});


R.java

public static final class id {
        public static final int action_settings=0x7f08000b;
        public static final int button1=0x7f080003;
        public static final int button2=0x7f080005;
        public static final int button3=0x7f080006;
        public static final int editText1=0x7f080002;
        public static final int editText2=0x7f080004;
        public static final int id_item=0x7f08000a;
        public static final int listView1=0x7f080007;
        public static final int name_item=0x7f080008;
        public static final int pwd_item=0x7f080009;
        public static final int textView1=0x7f080000;
        public static final int textView2=0x7f080001;
    }
    public static final class layout {
        public static final int activity_main=0x7f030000;
        public static final int list_item=0x7f030001;
    }


报错信息
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.login/com.example.login.MainActivity}: java.lang.IllegalArgumentException: column '_id' does not exist

android初学请各位帮忙看下

------解决方案--------------------
SimpleCursorAdapter?所绑定的Cursor的查询结果中必须有一个叫“_id”的字段
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

看看log是哪行报错了


SimpleCursorAdapter simpleCursorAdapter = new SimpleCursorAdapter(this,
R.layout.list_item, cursor, 
new String[]{db.ID,db.NAME,db.PWD}, 
new int[]{R.id.id_item,R.id.name_item,R.id.pwd_item});


报错在这里


看看你查询出来的Cursor包含db.ID,db.NAME,db.PWD这几个字段不?


坑爹的  SimpleCursorAdapter
问题解决了  原来是因为这个。。
 SimpleCursorAdapter只识别_id作为主键

http://www.cnblogs.com/ac1985482/archive/2013/06/21/3147962.html


可以重载SimpleCursorAdapter,bindview里自己去数据,这样就不需要_id这个字段了