Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 联系人姓名与listview中的号码不匹配_Android_Listview - Fatal编程技术网

Android 联系人姓名与listview中的号码不匹配

Android 联系人姓名与listview中的号码不匹配,android,listview,Android,Listview,我想使用姓名访问电话号码。但当我这样做时,我的呼叫与我选择的号码不匹配。我有一个带有复选框的列表视图。用户选择姓名,这些姓名将使用号码进入第二个活动。我的问题是在第二个活动中,在第一个活动中选择了号码和姓名。当我呼叫任何姓名时,我的应用程序正在呼叫不同的号码。我如何修复它 ArrayList<String> listte = new ArrayList<String>(); ArrayList<String> selectedlis

我想使用姓名访问电话号码。但当我这样做时,我的呼叫与我选择的号码不匹配。我有一个带有复选框的列表视图。用户选择姓名,这些姓名将使用号码进入第二个活动。我的问题是在第二个活动中,在第一个活动中选择了号码和姓名。当我呼叫任何姓名时,我的应用程序正在呼叫不同的号码。我如何修复它

     ArrayList<String> listte = new ArrayList<String>();

        ArrayList<String> selectedlist = new ArrayList<>();
        ListView chosinglist;
        Button kaydet;
        ArrayList<String> listtearama = new ArrayList<>();
        ArrayList<String> selectedlistarama = new ArrayList<>();
         @Override
            protected void onCreate(Bundle savedInstanceState) {


                super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);


                chosinglist = (ListView) findViewById(R.id.chosing);
                chosinglist.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

                getNumber(this.getContentResolver());



            }

            private void getNumber(ContentResolver contentResolver) {
                Cursor phones = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
                while (phones.moveToNext()) {

                    String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
               String     phonenumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

                    System.out.println(".................." + phonenumber);


                   if (!listte.contains(name)){ // it doesn"t work.But if It doesn"t exist, listview is repeating yourself.
                    listte.add(name);


                   }

                    if (!listtearama.contains(phonenumber)){// it doesn"t work.But if It doesn"t exist, listview is repeating yourself.
                        listtearama.add(phonenumber);  }

                }
                phones.close();// close cursor

                final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.checkrow,
                        R.id.checkedTextView2, listte);


   chosinglist.setAdapter(adapter);
        chosinglist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String selecteditem = (String) parent.getAdapter().getItem(position);
                int arkaplandakinumaraposition = parent.getPositionForView(view);


                String aramakicinliste = listtearama.get(arkaplandakinumaraposition);


                if (selectedlistarama.contains(aramakicinliste)) {
                    selectedlistarama.remove(aramakicinliste);
                } else
                    selectedlistarama.add(aramakicinliste);


                if (selectedlist.contains(selecteditem)) {
                    selectedlist.remove(selecteditem);

                } else selectedlist.add(selecteditem);
ArrayList listte=新的ArrayList();
ArrayList selectedlist=新建ArrayList();
列表视图选择列表;
按钮kaydet;
ArrayList listtearama=新的ArrayList();
ArrayList selectedlistarama=新建ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chosinglist=(ListView)findViewById(R.id.chosing);
chosinglist.setChoiceMode(ListView.CHOICE\u MODE\u MULTIPLE);
getNumber(this.getContentResolver());
}
私有void getNumber(ContentResolver ContentResolver){
游标phones=contentResolver.query(ContactsContract.commondatatypes.Phone.CONTENT\u URI,null,null,null);
while(phones.moveToNext()){
字符串名称=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataTypes.Phone.DISPLAY_name));
String phonenumber=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataTypes.Phone.NUMBER));
系统输出打印项次(……“+电话号码);
如果(!listte.contains(name)){//它不起作用。但是如果它不存在,listview会重复您自己的操作。
添加(名称);
}
如果(!listtearama.contains(phonenumber)){//它不起作用。但如果它不存在,listview会重复您自己的操作。
添加(电话号码);}
}
phones.close();//关闭光标
最终ArrayAdapter适配器=新的ArrayAdapter(此,R.layout.checkrow,
R.id.checkedTextView2,列表);
chosinglist.setAdapter(适配器);
chosinglist.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串selecteditem=(字符串)parent.getAdapter().getItem(位置);
int arkaplandakinumaraposition=parent.getPositionForView(视图);
字符串aramakicinliste=listtearama.get(arkaplandakinumaraposition);
if(selectedlistarama.contains(ArmakicinList)){
选择列表arama.remove(aramakicinliste);
}否则
选择列表arama.add(aramakicinliste);
if(selectedlist.contains(selecteditem)){
selectedlist.remove(selecteditem);
}else selectedlist.add(selecteditem);

ArrayList listte=new ArrayList();
ArrayList selectedlist=新建ArrayList();
列表视图选择列表;
按钮kaydet;
ArrayList listtearama=新的ArrayList();
ArrayList selectedlistarama=新建ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chosinglist=(ListView)findViewById(R.id.chosing);
chosinglist.setChoiceMode(ListView.CHOICE\u MODE\u MULTIPLE);
getNumber(this.getContentResolver());
}
私有void getNumber(ContentResolver ContentResolver){
游标phones=contentResolver.query(ContactsContract.commondatatypes.Phone.CONTENT\u URI,null,null,null);
//首先,检查光标是否有数据
if(phones!=null&&phones.getCount()>0){
//移动到第一个元素时,光标可能位于无效位置
moveToFirst();
做{
字符串名称=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataTypes.Phone.DISPLAY_name));
String phonenumber=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataTypes.Phone.NUMBER));
系统输出打印项次(……“+电话号码);
如果(!listte.contains(name)){//它不起作用。但它不存在listview。
添加(名称);
}
如果(!listtearama.contains(phonenumber)){//它不起作用。但它不存在listview。
添加(电话号码);
}
}while(phones.moveToNext());
phones.close();//关闭光标
}
最终ArrayAdapter适配器=新的ArrayAdapter(此,R.layout.checkrow,
R.id.checkedTextView2,列表);
chosinglist.setAdapter(适配器);
chosinglist.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串selecteditem=(字符串)parent.getAdapter().getItem(位置);
//int arkaplandakinumaraposition=parent.getPositionForView(视图);与我无关
字符串aramakicinliste=listtearama.get(位置);
if(selectedlistarama.contains(ArmakicinList)){
选择列表arama.remove(aramakicinliste);
}否则
选择列表arama.add(aramakicinliste);
if(selectedlist.contains(selecteditem)){
selectedlist.remove(selecteditem);
}else selectedlist.add(selecteditem);
}
});
}
/*在我看来,您似乎更需要实现mult
ArrayList<String> listte = new ArrayList<String>();

    ArrayList<String> selectedlist = new ArrayList<>();
    ListView chosinglist;
    Button kaydet;
    ArrayList<String> listtearama = new ArrayList<>();
    ArrayList<String> selectedlistarama = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        chosinglist = (ListView) findViewById(R.id.chosing);
        chosinglist.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        getNumber(this.getContentResolver());


    }

    private void getNumber(ContentResolver contentResolver) {
        Cursor phones = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
        //first of all, check if the cursor has data
        if (phones != null && phones.getCount() > 0) {
            //move to the first element, the cursor might be at an invalid location
            phones.moveToFirst();
            do {

                String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                String phonenumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

                System.out.println(".................." + phonenumber);


                if (!listte.contains(name)) { // it doesn"t work.But It doesn"t exist listview repeating yourself.
                    listte.add(name);
                }

                if (!listtearama.contains(phonenumber)) {// it doesn"t work.But It doesn"t exist listview repeating yourself.
                    listtearama.add(phonenumber);
                }

            } while (phones.moveToNext());
            phones.close();// close cursor
        }

        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.checkrow,
                R.id.checkedTextView2, listte);


        chosinglist.setAdapter(adapter);
        chosinglist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String selecteditem = (String) parent.getAdapter().getItem(position);
                //int arkaplandakinumaraposition = parent.getPositionForView(view); irrelevant to me


                String aramakicinliste = listtearama.get(position);


                if (selectedlistarama.contains(aramakicinliste)) {
                    selectedlistarama.remove(aramakicinliste);
                } else
                    selectedlistarama.add(aramakicinliste);


                if (selectedlist.contains(selecteditem)) {
                    selectedlist.remove(selecteditem);

                } else selectedlist.add(selecteditem);
            }

        });
    }

    /*From what I see, it seems you rather need to implement multiple selection because the checkbox 
    * has an onclick event of its own which is different from the one for the entire list item*/