我是Android新手,並且已經爲此問題解決了數週的搜索問題。我在身體中有一個微調器,在擴展列表的頭部有一個文本字段,它位於片段的滾動視圖中。標題中的文本顯示正確,但當我顯示/隱藏子視圖時,旋鈕值會更改。Spinners在擴展列表視圖中混淆了值
我不知道我在做什麼錯。我很感謝這裏的任何幫助。
這裏是適配器:
public class ExtendedListAdapter extends BaseExpandableListAdapter {
private Context ctx;
private LinkedHashMap<String, List<List<LinkedHashMap<String, String>>>> extendedListData;
private List<String> extendedListHeaders;
class Viewholder {
View rowView;
Spinner spnr;
TextView item1;
}
public ExtendedListAdapter(Context ctx, LinkedHashMap<String, List<List<LinkedHashMap<String, String>>>> extendedListData, List<String> extendedListHeaders) {
this.ctx = ctx;
this.extendedListData = extendedListData;
this.extendedListHeaders = extendedListHeaders;
}
@Override
public Object getChild(int parent, int child) {
return extendedListData.get(extendedListHeaders.get(parent)).get(child);
}
@Override
public long getChildId(int parent, int child) {
// TODO Auto-generated method stub
return child;
}
@Override
public View getChildView(int parentId, int childId, boolean lastChild, View convertView,
ViewGroup parentview) {
Viewholder v;
if (convertView == null) {
v = new Viewholder();
LayoutInflater inflator = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflator.inflate(R.layout.child_layout, parentview, false);
v.rowView = convertView;
v.rowView.setTag(v);
v.item1 = (TextView) convertView.findViewById(R.id.textLabel);
v.spnr = (Spinner) convertView.findViewById(R.id.spinner1);
}
else {
v = (Viewholder) convertView.getTag();
}
List<LinkedHashMap<String, String>> childListLinkedHashMap = (List<LinkedHashMap<String, String>>) getChild(parentId, childId);
LinkedHashMap<String, String> label = childListLinkedHashMap.get(0);
String[] items = new String[childListLinkedHashMap.size() - 1];
v.item1.setText(label.get("name"));
for (int i = 1; i < childListLinkedHashMap.size(); i++) {
items[i - 1] = childListLinkedHashMap.get(i).get("name");
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(ctx, android.R.layout.simple_spinner_dropdown_item, items);
v.spnr.setAdapter(adapter);
if (v.spnr.getTag() != null) {
v.spnr.setSelection((int) v.spnr.getTag());
}
v.spnr.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
parent.setTag(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
return convertView;
}
@Override
public int getChildrenCount(int arg0) {
return extendedListData.get(extendedListHeaders.get(arg0)).size();
}
@Override
public Object getGroup(int arg0) {
// TODO Auto-generated method stub
return extendedListHeaders.get(arg0);
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return extendedListHeaders.size();
}
@Override
public long getGroupId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public View getGroupView(int parent, boolean isExpanded, View convertView, ViewGroup parentview) {
// TODO Auto-generated method stub
String group_title = (String) getGroup(parent);
if (convertView == null) {
LayoutInflater inflator = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflator.inflate(R.layout.parent_layout, parentview, false);
}
TextView parent_textview = (TextView) convertView.findViewById(R.id.parent_txt);
ImageView imageView = (ImageView) convertView.findViewById(R.id.imageView);
parent_textview.setTypeface(null, Typeface.BOLD);
parent_textview.setText(group_title);
if (isExpanded) {
imageView.setImageResource(R.drawable.group_down);
} else {
imageView.setImageResource(R.drawable.group_up);
}
return convertView;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isChildSelectable(int arg0, int arg1) {
// TODO Auto-generated method stub
return false;
}
}
謝謝克里斯,這有幫助。但我的問題是關於紡紗者的價值觀,而不是選定的價值觀。這裏是回購,因爲從示例中可以更容易地看到我的意思:[email protected]:fermicoding/lhapp.git – user12869
適配器值看起來好像來自正確的位置。除非您有重複的標題值,否則我不知道適配器值的問題來自何處。 –