【问题标题】:android match contact from contactlistandroid匹配联系人列表中的联系人
【发布时间】:2013-11-26 10:55:57
【问题描述】:

我已经尝试过这段代码..它工作正常..

public class Test extends Activity implements OnItemClickListener{

List<String> name1 = new ArrayList<String>();
List<String> name2 = new ArrayList<String>();
List<String> phno1 = new ArrayList<String>();
List<String> matchedList;
MyAdapter ma ;
Button select;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    name2.add("Abc");
    name2.add("Xyz");
    name2.add("Pqr");
    name2.add("aaa");

    getAllContacts(this.getContentResolver());

    ListView lv= (ListView) findViewById(R.id.lv);
    ma = new MyAdapter();
    lv.setAdapter(ma);
    lv.setOnItemClickListener(this); 
    lv.setItemsCanFocus(false);
    lv.setTextFilterEnabled(true);



}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // TODO Auto-generated method stub

}

public  void getAllContacts(ContentResolver cr) {
    Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
    while (phones.moveToNext())
    {
        String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_PRIMARY));
        String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
        System.out.println(".................."+phoneNumber); 
        name1.add(name);
        phno1.add(phoneNumber);



    }

    phones.close();
}
class MyAdapter extends BaseAdapter 
{ 

    LayoutInflater mInflater;
    TextView tv1,tv;

    MyAdapter()
    {
        // mCheckStates = new SparseBooleanArray(name1.size());
        mInflater = (LayoutInflater)Test.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return name1.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub

        return 0;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        View vi=convertView;
        if(convertView==null)
            vi = mInflater.inflate(R.layout.row_list, null); 
        TextView tv= (TextView) vi.findViewById(R.id.txt_name);
        tv1= (TextView) vi.findViewById(R.id.txt_phoneNo);

        tv.setText("Name :"+ name1.get(position));
        // tv1.setText("Phone No :"+ phno1.get(position));


        return vi;
    }

}  
  }

现在在 ArrayList name1 我有我的设备所有名称的列表.. 在name2中,我有一些选择的人的Arraylist..现在我想匹配这个数组列表并在存在的列表中显示名称.... 我从上周开始就在做这件事……卡在这里……请帮帮我…… 谢谢...:)

【问题讨论】:

    标签: android android-contacts


    【解决方案1】:

    不要惊慌,只需匹配两个列表并获取一个临时数组列表,当任何名称匹配时添加该临时数组列表,然后根据该临时数组列表显示该列表视图。 :)

    这里我给你代码和提示:

    ArrayList<String> matchname = new ArrayList<String>();
                    for(int k =0;k<name1;k++)
                    {
                        for(int l =0;l<name2.size();l++)
                        {
                            String keyname = name1[k];
    
                            if((keyname.trim().equals(name2[l].trim())))
                            {
                                matchname.add(keyname);
    
                            }
                        }
    }
    

    【讨论】:

    • 但是像这样比较给我不正确的输出
    • like...我没听懂...我认为这个 for 循环给了你完美的临时数组列表伙计,如果你没有得到那么 plzz 调试和 chk 一个一个值并打印这两个值我认为我们的一个联系人列表中可能有一些不需要的联系人值
    • 如果我有像“Abc surname”这样的商店名称..那么它不会给我正确的输出
    • dude android cursur 给你也姓你尝试得到这个
    • try { String select = "((" + Contacts.DISPLAY_NAME + " NOTNULL) AND (" + Contacts.HAS_PHONE_NUMBER + "=1) AND (" + Contacts.DISPLAY_NAME + " != '' ))";光标 c = cntx.getContentResolver().query(Contacts.CONTENT_URI, CONTACTS_SUMMARY_PROJECTION, select, null, Contacts.DISPLAY_NAME + "COLLATE LOCALIZED ASC");
    猜你喜欢
    • 2014-08-09
    • 1970-01-01
    • 2016-10-08
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多