0
while (pCur.moveToNext()) {
     String phone = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
     String pon = name ;
     System.out.println("phone" + phone + name);
     listItems.add(pon + phone) ;
     adapter.notifyDataSetChanged();
}

我从某人的联系人中获取电话号码和姓名。我必须对每个对象进行字符串化以将其传递给我的列表视图(多项检查)。现在我选择了多个选项,我想再次将两者分开(联系人姓名和与之关联的电话号码),以便我可以将它们放入数据库中的单独列中。一旦它是数组适配器中的字符串,我该如何拆分两者?

4

2 回答 2

0

在姓名和电话之间使用字符串 inb 并使用该字符串再次拆分它。

代码示例

while (pCur.moveToNext()) {
     String phone = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
     String pon = name ;
     System.out.println("phone" + phone + name);
/* Following code changed here...Hoping that "!@#$" doesnt exists in pon or phone data. Or you can replace it with some other string which will not come in these objects. */
     listItems.add(pon +"!@#$"+ phone) ;
     adapter.notifyDataSetChanged();
}

如何检索和拆分:示例方法

ArrayList<String> listItems = new ArrayList<String>();
        listItems.add("Joseph!@#$325625123");
        listItems.add("John!@#$5214252142");
        for (String strData : listItems)
        {
            int index = strData.indexOf("!@#$");
            if (index > -1)
            {
                String name = strData.substring(0, index);
                String phone = strData.substring(index + 4);// 4 is the length of the substitute string
                System.out.println(name + ", " + phone);
                // Code to insert name and phone database
            }

        }

上述方法的结果如下

约瑟夫,325625123

约翰,5214252142

于 2013-04-03T19:43:32.913 回答
0

我如何拆分这两个对象字符串,以便我可以放入数据库

出色地。可能在您的 ListView 中,您将数据格式化为(您也可以确保特定格式以便将来更轻松地工作)。

John 23459395

现在,当您从 中选择项目时ListView,您可以访问它们并将它们保存到临时列表中。然后您可以使用split()方法拆分 List 中的每个项目。

List<String> selectedItems = new ArrayList<String>();
// selection from ListView
String[] temp;
for (String s: selectedItems) {
   temp = s.split(" "); // or other regex based on format of source
   // insert into db
}

但这取决于来源的格式。

更新:

您可以改进的实际方法。看,现在您正在从中获取姓名和电话号码Cursor

我建议您创建自己的类,例如称为User具有属性名称、电话号码等的类。然后创建ArrayList<User>()并将其设置为 ListAdapter 的数据源。

如果您是否使用自己实现的适配器子类,我现在不知道。如果没有,您需要覆盖toString()User 类中的方法以获取 User 的正确字符串表示形式。

于 2013-04-03T18:35:05.993 回答