您是使用Android使用SQLite的新手,我一直在寻找一种使用存储Long的SQLite数据库进行CRUD操作的方法,同时使用User Object。 我的insertDetails方法在这里:
public Long insertDetails(String fname, String lname,String sex,String birthdate) {
ContentValues contentValues = new ContentValues();
contentValues.put(UserOpenHelper.FNAME, fname);
contentValues.put(UserOpenHelper.LNAME, lname);
contentValues.put(UserOpenHelper.SEX, sex);
contentValues.put(UserOpenHelper.BIRTHDATE, birthdate);
opnToWrite();
long val = database_ob.insert(UserOpenHelper.TABLE_NAME, null,
contentValues);
Close();
return val;
}
我在UserActivity中遇到错误,
List<User> values = datasource.getAllUsers();
ArrayAdapter<User> adapter = new ArrayAdapter<User>(this,
android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
User User= datasource.insertDetails(firstname, lastname, sex, birthdate);//here (1)
adapter.add(User);
long val = adapter.insertDetails(firstname, lastname, sex, birthdate); //here (2)
//long vall= adapter.insert(User, index)
// db.addUser(new User(firstname, lastname, sex, birthdate));
Log.d("filter", "inserted");
错误:
(1) - 类型不匹配:无法从Long转换为用户
(2) - 对于ArrayAdapter类型,未定义方法insertDetails(String,String,String,String)
任何帮助,请
答案 0 :(得分:0)
(1) - 类型不匹配:无法从Long转换为用户
查看insertDetails的签名,
public Long insertDetails(String, String, String, String)
该方法返回Long类型的Object。由于您尝试将其分配给User对象,编译器会抱怨
User User= datasource.insertDetails(firstname, lastname, sex, birthdate);//here (1)
(2) - 方法insertDetails(String,String,String,String)是 未定义ArrayAdapter类型
您使用的是ArrayAdapter
的默认实现,但未实现insertDetails
方法。这就是编译器抱怨的原因