Java 在自定义适配器中未调用getView
我正在尝试在对话框中创建listview。但是适配器中的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
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);
到
谢谢你的帮助。它正在工作。稍后我会接受你的回答。谢谢你的帮助。它正在工作。我稍后会接受你的回答。