安卓/数据库。知道为啥电话号码中的第一个字符“+”会消失吗?
Posted
技术标签:
【中文标题】安卓/数据库。知道为啥电话号码中的第一个字符“+”会消失吗?【英文标题】:Android/Database. Any idea why disappears from phone number the first character, the "+"?安卓/数据库。知道为什么电话号码中的第一个字符“+”会消失吗? 【发布时间】:2014-03-12 13:13:39 【问题描述】:我使用 Log,当我得到联系人号码并且一切正常时,直到我从数据库中读取它们并放入列表中,然后我从数字中松开“+”字符。
public void getNumbers(String box)
Uri uri = Uri.parse("content://sms/" + box);
Cursor c = getContentResolver().query(uri, null, null, null, null);
startManagingCursor(c);
// Read the sms data and store it in the list
if (c.moveToFirst())
for (int i = 0; i < c.getCount(); i++)
SMSData sms = new SMSData();
sms.setNumber(c.getString(c.getColumnIndexOrThrow("address"))
.toString());
String nr = sms.getNumber();
Log.d("I got this:", nr);
db.getSMSDataBySearch(nr);
c.moveToNext();
c.close();
以及 SQLite 代码:
SQLiteDatabase db = this.getWritableDatabase(); 光标 cursor = db.rawQuery("INSERT INTO version3 (number) SELECT "+value+" WHERE NOT EXISTS" + "(SELECT 1 FROM version3 WHERE number = "+value+")", null);
【问题讨论】:
【参考方案1】:SMS 内容提供程序不存储格式,只存储数字数据。
如果你想格式化它,有工具或者你可以构建它:
Java phone number format API
【讨论】:
但是在日志中出现了“+”。 我不知道你的数据库是如何设置的——但 SQLite 可能不在乎你是否有“+123456”作为数字,它只会删除“+”。那么您的数据库是否将其存储为数字? 它像字符串一样存储。如果我使用另一种方法在数据库中写入,那就可以了。但粘贴代码不会。以上是关于安卓/数据库。知道为啥电话号码中的第一个字符“+”会消失吗?的主要内容,如果未能解决你的问题,请参考以下文章
知道为啥这个函数正在写入/更新表中的第一个单元格而不是 PFQueryTableViewController 中选定的单元格吗?