从长到长的对象

时间:2014-09-04 13:09:39

标签: android sqlite listview object long-integer

您是使用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)

任何帮助,请

1 个答案:

答案 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方法。这就是编译器抱怨的原因