Cursor cursor=new MatrixCursor(new String[]{"name","age","weight"});
for (User user:userList){
cursor.addRow(new Object[]{"name","age","weight"});
}
return cursor;
}
这一段的cursor.addrow报错(没有这个方法),如果把cursor类型改为matrixcursor的话,能运行但闪退
public class MainActivity extends AppCompatActivity {
private ListView listView;
private DBOpenHelper dbOpenHelper;
private List<User> userList;
private adapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=findViewById(R.id.view);
dbOpenHelper = new DBOpenHelper(MainActivity.this);
//final SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
insertUerData();
userList=fetchAllUsers();
adapter=new adapter(this,createCursorFromList(userList));
listView.setAdapter(adapter);
}
private Cursor createCursorFromList(List<User> userList) {
Cursor cursor=new MatrixCursor(new String[]{"name","age","weight"});
for (User user:userList){
cursor.addRow(new Object[]{"name","age","weight"});
}
return cursor;
}
private List<User> fetchAllUsers() {
List<User> list=new ArrayList<>();
SQLiteDatabase db=dbOpenHelper.getReadableDatabase();
Cursor cursor=db.rawQuery("select * from user",null);
if (cursor.moveToFirst()){
do {
User user=new User(
cursor.getString(cursor.getColumnIndex("name")),
cursor.getInt(cursor.getColumnIndex("age")),
cursor.getInt(cursor.getColumnIndex("weight"))
);
list.add(user);
}while (cursor.moveToNext());
}cursor.close();
return list;
}
private void insertUerData() {
dbOpenHelper.getWritableDatabase().execSQL("insert into user values('xiaohei',2,100)",null);
}
}