【问题标题】:List contacts which are in an array列出数组中的联系人
【发布时间】:2013-05-25 13:33:18
【问题描述】:

我有一个包含一些电话号码的数组,我想选择并列出也在我的数组中的设备联系人。

现在我只能显示数组中的第一个 phoneNumber。

这是我的代码:

public class Contacts extends ListActivity {
    SharedPreferences settings ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.contacts);
        setTitle("Choose a phone");
        // Query: contacts with phone shorted by name
        settings = this.getSharedPreferences(SETTINGS, Context.MODE_PRIVATE);
        String message = settings.getString("contacts", "0,0");
        String [] contacts = message.split(",");

        String query = " IN (";
        for (int i = 1; i < contacts.length; i++) {
            query += contacts[i];
            if (i < contacts.length - 1)
                query += ",";
        }
        query += ")";


        Cursor mCursor = getContentResolver().query(
                Data.CONTENT_URI,
                new String[] { Data._ID, Data.DISPLAY_NAME, Phone.NUMBER, Phone.TYPE }, Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "' AND " + Phone.NUMBER + " IS NOT NULL AND " + Phone.NUMBER + query, null, Data.DISPLAY_NAME + " ASC");
        startManagingCursor(mCursor);

        // Setup the list
        ListAdapter adapter = new SimpleCursorAdapter(this, // context
                android.R.layout.simple_list_item_2, // Layout for the rows
                mCursor, // cursor
                new String[] { Data.DISPLAY_NAME, Phone.NUMBER }, // cursor
                // fields
                new int[] { android.R.id.text1, android.R.id.text2 } // view
        // fields
                );
        setListAdapter(adapter);
    }

【问题讨论】:

  • 您的意思是您需要一个复选框来选择列表中的项目?您需要列出电话联系人中的所有联系人吗?
  • 如果手机中的所有联系人也在我的数组中,我需要列出它们。
  • 如果我的联系人是:John 1 Sue 2 Dave 3 和我的数组:John 1 Sue 2 Caroline 4 该列表必须有 2 个联系人:John 1 Sue 2
  • 检查这可能会帮助你stackoverflow.com/questions/16730064/…。从手机联系人中获取联系人
  • 我不知道该怎么做。但是如果你有一个字符串数组。应该很容易在列表中显示它。

标签: android


【解决方案1】:

我不确定这是否是唯一的问题。您没有在 IN 语句中使用撇号

你可以试试

String query = " IN (";
        for (int i = 1; i < contacts.length; i++) {
            query+= "'";
            query += contacts[i];
            query+= "'";
            if (i < contacts.length - 1)
                query += ",";
        }
        query += ")";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多