Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.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 在自定义适配器中未调用getView_Java_Android_Android Listview_Adapter - Fatal编程技术网

Java 在自定义适配器中未调用getView

Java 在自定义适配器中未调用getView,java,android,android-listview,adapter,Java,Android,Android Listview,Adapter,我正在尝试在对话框中创建listview。但是适配器中的getView函数从未被调用。有什么想法吗 适配器: public class DialogAdapter extends BaseAdapter{ HashMap<String, String> extraInfo; private String[] mKeys; Context mContext; int res; LayoutInflater vi; public DialogAdapter(){ } public

我正在尝试在对话框中创建listview。但是适配器中的getView函数从未被调用。有什么想法吗

适配器:

public class DialogAdapter extends BaseAdapter{

HashMap<String, String> extraInfo;
private String[] mKeys;

Context mContext;
int res;
LayoutInflater vi;
public DialogAdapter(){

}

public DialogAdapter(Context context,HashMap<String, String> extraInfo) {
    this.extraInfo = extraInfo;
    mKeys = this.extraInfo.keySet().toArray(new String[this.extraInfo.size()]);
    mContext = context;
    vi = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return extraInfo.size();
}


@Override
public Object getItem(int position) {
    return extraInfo.get(mKeys[position]);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    Textholder textholder = null;
    System.out.println("Test");
    if(convertView ==null){
        convertView = vi.inflate(R.layout.cust_dialog_item, parent, false);
        textholder = new Textholder();
        textholder.info = (TextView)convertView.findViewById(R.id.textProfile);
        textholder.value = (TextView)convertView.findViewById(R.id.valueProfile);

        convertView.setTag(textholder);
    }
    else{
        textholder = (Textholder)convertView.getTag();
    }
    textholder.info.setText(mKeys[position]);
    textholder.value.setText(getItem(position).toString());




    return convertView;
}

private static class Textholder {
    TextView info;
    TextView value;
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
}
试试这个

   custListDialog.setAdapter(dAdapter);
 dialog.show();
试试这个

   custListDialog.setAdapter(dAdapter);
 dialog.show();

你把布局放大了两次。对话框中的listview与您设置适配器的不同

修复它,例如更改

AlertDialog dialog = new AlertDialog.Builder(getActivity())
.setView(getActivity().getLayoutInflater().inflate(R.layout.custdialog, null))
.create();
View x = inflater.inflate(R.layout.custdialog, container, false);


你把布局放大了两次。对话框中的listview与您设置适配器的不同

修复它,例如更改

AlertDialog dialog = new AlertDialog.Builder(getActivity())
.setView(getActivity().getLayoutInflater().inflate(R.layout.custdialog, null))
.create();
View x = inflater.inflate(R.layout.custdialog, container, false);


谢谢你的帮助。它正在工作。稍后我会接受你的回答。谢谢你的帮助。它正在工作。我稍后会接受你的回答。