gpt4 book ai didi

java - 使用内容值将字符串转换为整数

转载 作者:行者123 更新时间:2023-11-30 02:58:46 25 4
gpt4 key购买 nike

我目前正在处理一个在 ListView 中显示联系人的教程中使用的项目。数据库中的所有字段都被使用并保存为字符串。自定义适配器类用于编辑和删除按钮 - 按钮按项目显示在 ListView 中。单击编辑会导致一个单独的 Activity ,在其中解析该记录的详细信息。

我添加了另一个按钮,我想在单击它时更新记录并重新加载 Activity 。当您按下按钮时,它会从 connector 方法中调用一个方法:

    public void updateContact(long id, String name, String phone, String mail,
String fb, byte[] blob) {
ContentValues cv = new ContentValues();
cv.put(Contacts.NAME, name);
cv.put(Contacts.PHONE, phone);
cv.put(Contacts.MAIL, mail);
cv.put(Contacts.FB, fb);
cv.put(Contacts.IMAGE, blob);

db = sqlHp.getWritableDatabase();
db.update(Contacts.TABLE, cv, Contacts.ID + "=" + id, null);
db.close();
}

我希望 phone 将字符串转换为整数,将值递增 1,然后使用 contentvalues 将其保存为字符串。这是我尝试过的:

    public void updateContact(long id, String name, String phone,
String mail, String fb, byte[] blob) {
ContentValues cv = new ContentValues();

cv.put(Contacts.NAME, name);
int phone1 = 0;
phone1 = (Integer) cv.getAsInteger(Contacts.PHONE);

phone1++;


phone = String.valueOf(phone1);

cv.put(Contacts.PHONE, phone);


cv.put(Contacts.MAIL, mail);
cv.put(Contacts.FB, fb);
cv.put(Contacts.IMAGE, blob);

db = sqlHp.getWritableDatabase();
db.update(Contacts.TABLE, cv, Contacts.ID + "=" + id, null);
db.close();
}

这给了我一个空指针异常错误。我不确定从这里到哪里去。

这是来自自定义适配器的方法,它包含 onclick 方法

    setPresent = (ImageButton) v.findViewById(R.id.setPresent);
setPresent.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

sqlCon.updateContact(id, name, phone, email, fb, image);
Intent intent = new Intent(context, MyContactsActivity.class)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);

}

});

当我点击这个按钮时,出现了空指针异常错误。这些是它标记的行:

                sqlCon.updateContact(id, name, phone, email,  fb, image);

- 来自自定义适配器

        phone1 = (Integer) cv.getAsInteger(Contacts.PHONE);

- 来自连接器

最佳答案

这部分在您的代码中没有真正意义:

ContentValues cv = new ContentValues();
int phone1 = (Integer) cv.getAsInteger(Contacts.PHONE);

您正在尝试从刚刚创建的 ContentValues 获取 Contacts.PHONE

也许你想做这样的事情:

cv.put(Contacts.PHONE, Integer.parseInt(phone) + 1);

如果清理这部分,NullPointerException 可能会自然消失。

此外,使用 ? 参数占位符更新表比将它们放入查询字符串更安全,如下所示:

db.update(Contacts.TABLE, cv, Contacts.ID + " = ?", new long[]{id});

关于java - 使用内容值将字符串转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22888078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com