Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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
Java 模型类对象列表中的数据检索不正确?_Java_Android_Arraylist_Android Contentprovider - Fatal编程技术网

Java 模型类对象列表中的数据检索不正确?

Java 模型类对象列表中的数据检索不正确?,java,android,arraylist,android-contentprovider,Java,Android,Arraylist,Android Contentprovider,当我尝试从listConCard(在我的活动类ContactCard.class中)检索单个对象时,所有ContactCard的“conName”都正确接收,但我没有从其同级数组“conPhoneType”、“conPhoneValue”、“conEmailType”、“conEmailValue”中获得正确的数据 listConCard是我的模型类ContactCardModel.class的对象列表 我在listConCard中添加“ContactCardModel”对象,如下所示 list

当我尝试从listConCard(在我的活动类ContactCard.class中)检索单个对象时,所有ContactCard的“conName”都正确接收,但我没有从其同级数组“conPhoneType”、“conPhoneValue”、“conEmailType”、“conEmailValue”中获得正确的数据

listConCard是我的模型类ContactCardModel.class的对象列表

我在listConCard中添加“ContactCardModel”对象,如下所示

listConCard.add(new ContactCardModel(conName, conPhoneType, conPhoneValue, conEmailType, conEmailValue)); 
for(int i = 0; i < listConCard.size(); i++){

    Log.e("InAdp", listConCard.get(i).getConName()); // name is returing correctly.

    for(int x = 0; x < listConCard.get(i).getConPhoneType().size(); x++)
        Log.e("InAdp conPhone", listConCard.get(i).getConPhoneType().get(x) + ": " + listConCard.get(i).getConPhoneValue().get(x)); 


    for(int x = 0; x < listConCard.get(i).getConEmailType().size(); x++)
        Log.e("InAdp conEmail", listConCard.get(i).getConEmailType().get(x) + ": " + listConCard.get(i).getConEmailValue().get(x));

}
以及检索“ContactCardModel”对象的数据,如下所示

listConCard.add(new ContactCardModel(conName, conPhoneType, conPhoneValue, conEmailType, conEmailValue)); 
for(int i = 0; i < listConCard.size(); i++){

    Log.e("InAdp", listConCard.get(i).getConName()); // name is returing correctly.

    for(int x = 0; x < listConCard.get(i).getConPhoneType().size(); x++)
        Log.e("InAdp conPhone", listConCard.get(i).getConPhoneType().get(x) + ": " + listConCard.get(i).getConPhoneValue().get(x)); 


    for(int x = 0; x < listConCard.get(i).getConEmailType().size(); x++)
        Log.e("InAdp conEmail", listConCard.get(i).getConEmailType().get(x) + ": " + listConCard.get(i).getConEmailValue().get(x));

}
for(int i=0;i
getConPhoneType和getConPhoneValue数组的值都返回0个元素

getConEmailType和GetConEmailValues数组的值都返回1个元素

conPhoneType和conPhoneValue的大小相同

conEmailType和conEmailValue的大小相同

名片

String conName;
List<String> conPhoneType;
List<String> conPhoneValue;
List<String> conEmailType;
List<String> conEmailValue;
List<ContactCardModel> listConCard;

int i = 1;

    for (AddressBookContact addressBookContact : list) {

        conName = addressBookContact.name;

        conPhoneType.clear();
        conPhoneValue.clear();
        if(addressBookContact.phones != null) {

            for (int x = 0; x < addressBookContact.phones.size(); x++) {
                int type = (int) addressBookContact.phones.keyAt(x);
                String typeName = (String) ContactsContract.CommonDataKinds.Phone.getTypeLabel(addressBookContact.res, type, "");
                String phValue = addressBookContact.phones.valueAt(x);

                conPhoneType.add(typeName);
                conPhoneValue.add(phValue);
            }
        }

        conEmailType.clear();
        conEmailValue.clear();
        if(addressBookContact.emails != null){

            for(int x = 0; x < addressBookContact.emails.size(); x++){
                int type = (int) addressBookContact.emails.keyAt(x);
                String typeName = (String) ContactsContract.CommonDataKinds.Phone.getTypeLabel(addressBookContact.res, type, "");
                String emailValue = addressBookContact.emails.valueAt(x);

                conEmailType.add(typeName);
                conEmailValue.add(emailValue);
            }
        }

        listConCard.add(new ContactCardModel(conName, conPhoneType, conPhoneValue, conEmailType, conEmailValue));

    }
字符串连接名;
列表类型;
列表值;
列表类型;
列出价值;
列表目录;
int i=1;
for(AddressBookContact AddressBookContact:列表){
conName=addressBookContact.name;
conPhoneType.clear();
conPhoneValue.clear();
if(addressBookContact.phones!=null){
对于(int x=0;x
ContactCardModel.class

public class ContactCardModel {

String conName;
List<String> conPhoneType;
List<String> conPhoneValue;
List<String> conEmailType;
List<String> conEmailValue;

public ContactCardModel(String mConName, List<String> mConPhoneType, List<String> mConPhoneValue,
                        List<String> mConEmailType, List<String> mConEmailValue){

    conPhoneType = new ArrayList<String>();
    conPhoneValue = new ArrayList<String>();
    conEmailType = new ArrayList<String>();
    conEmailValue = new ArrayList<String>();

    this.conName = mConName;
    this.conPhoneType = mConPhoneType;
    this.conPhoneValue = mConPhoneValue;
    this.conEmailType = mConEmailType;
    this.conEmailValue = mConEmailValue;
}

public String getConName() {
    /*Log.e("InAdp conName", this.conName);*/
    return conName;
}

public void setConName(String conName) {
    this.conName = conName;
}

public List<String> getConPhoneType() {
    /*for(int i = 0; i < this.conPhoneType.size(); i++){
        Log.e("InAdp conPhone", this.conPhoneType.get(i)*//* + ": " + this.conPhoneValue.get(i)*//*);
    }*/
    return conPhoneType;
}

public void setConPhoneType(List<String> conPhoneType) {
    this.conPhoneType = conPhoneType;
}

public List<String> getConPhoneValue() {
    return conPhoneValue;
}

public void setConPhoneValue(List<String> conPhoneValue) {
    this.conPhoneValue = conPhoneValue;
}

public List<String> getConEmailType() {
    /*for(int i = 0; i < this.conEmailType.size(); i++){
        Log.e("InAdp conEmail", this.conEmailType.get(i)*//* + ": " + this.conEmailValue.get(i)*//*);
    }*/
    return conEmailType;
}

public void setConEmailType(List<String> conEmailType) {
    this.conEmailType = conEmailType;
}

public List<String> getConEmailValue() {
    return conEmailValue;
}

public void setConEmailValue(List<String> conEmailValue) {
    this.conEmailValue = conEmailValue;
}

 }
公共类ContactCardModel{
字符串连接名;
列表类型;
列表值;
列表类型;
列出价值;
public ContactCardModel(字符串mConName、列表mConPhoneType、列表mConPhoneValue、,
列表mConEmailType,列表mConEmailValue){
conPhoneType=newarraylist();
conPhoneValue=newarraylist();
conEmailType=newarraylist();
conEmailValue=newarraylist();
this.conName=mConName;
this.conPhoneType=mConPhoneType;
this.conPhoneValue=mConPhoneValue;
this.conEmailType=mConEmailType;
this.conEmailValue=mConEmailValue;
}
公共字符串getConName(){
/*Log.e(“InAdp conName”,this.conName)*/
返回conName;
}
公共无效setConName(字符串conName){
this.conName=conName;
}
公共列表getConPhoneType(){
/*对于(int i=0;i
尝试以下修改。无法运行和测试代码,因为提供的代码不足以编译和运行。 在ContactCard.java中

String conName;
List<String> conPhoneType;
List<String> conPhoneValue;
List<String> conEmailType;
List<String> conEmailValue;
List<ContactCardModel> listConCard = new ArrayList<ContactCardModel>();

int i = 1;

    for (AddressBookContact addressBookContact : list) {

        conName = addressBookContact.name;

        conPhoneType = new ArrayList<String>();
        conPhoneValue = new ArrayList<String>();
        if(addressBookContact.phones != null) {

            for (int x = 0; x < addressBookContact.phones.size(); x++) {
                int type = (int) addressBookContact.phones.keyAt(x);
                String typeName = (String) ContactsContract.CommonDataKinds.Phone.getTypeLabel(addressBookContact.res, type, "");
                String phValue = addressBookContact.phones.valueAt(x);

                conPhoneType.add(typeName);
                conPhoneValue.add(phValue);
            }
        }

        conEmailType = new ArrayList<String>();
        conEmailValue = new ArrayList<String>();
        if(addressBookContact.emails != null){

            for(int x = 0; x < addressBookContact.emails.size(); x++){
                int type = (int) addressBookContact.emails.keyAt(x);
                String typeName = (String) ContactsContract.CommonDataKinds.Phone.getTypeLabel(addressBookContact.res, type, "");
                String emailValue = addressBookContact.emails.valueAt(x);

                conEmailType.add(typeName);
                conEmailValue.add(emailValue);
            }
        }

        listConCard.add(new ContactCardModel(conName, conPhoneType, conPhoneValue, conEmailType, conEmailValue));

    }
字符串连接名;
列表类型;
列表值;
列表类型;
列出价值;
List listConCard=new ArrayList();
int i=1;
for(AddressBookContact AddressBookContact:列表){
conName=addressBookContact.name;
conPhoneType=newarraylist();
conPhoneValue=newarraylist();
if(addressBookContact.phones!=null){
对于(int x=0;x