我想學習Android和Java,並且遇到了與ExpandableListViews的困難。Android ExpandableListView getChildView使數據混亂
我正在試着製作一個Expandablelistview,它下面有一些editTexts和textViews。我可以有1到20個組,每組有3個editText和一個textView。
我想在啓動時從數據庫填充數據,並且在用戶修改數據時將其保存回來。我試圖做到這一點,但數據似乎是所有的地方。簡單的測試:
- 添加3組,1名兒童每
- 每個EDITTEXT
- 收起添加數據的所有團體和擴大他們最後一個第一個
- >結果是該組1和2將具有與最後一組相同的數據!這讓我瘋狂!有人能告訴我我做錯了什麼嗎?
這是我的getChildView,它非常非常簡單。
public View getChildView(final int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
if (convertView == null) {
ViewHolder holder = new ViewHolder();
Log.i("Main", "Creating new viewHolder for " + groupPosition+childPosition);
convertView = minflater.inflate(R.layout.childrow, null);
holder.text1 = (EditText) convertView.findViewById(R.id.rpsinSet);
holder.text2 = (EditText) convertView.findViewById(R.id.wtForSet);
holder.text3 = (EditText) convertView.findViewById(R.id.rstForSet);
holder.No = (TextView) convertView.findViewById(R.id.NoTextView);
holder.No.setText("Set " + (childPosition + 1));
holder.text1.setText(""+Sets.get(groupPosition).get(childPosition).getRps());
holder.text2.setText(""+Sets.get(groupPosition).get(childPosition).getWt());
holder.text3.setText(""+Sets.get(groupPosition).get(childPosition).getRst());
convertView.setTag(holder);
} else {
Log.i("Main", "Recovering viewHolder for " + groupPosition+childPosition);
ViewHolder holder = (ViewHolder) convertView.getTag();
holder.text1 = (EditText) convertView.findViewById(R.id.rpsinSet);
holder.text2 = (EditText) convertView.findViewById(R.id.wtForSet);
holder.text3 = (EditText) convertView.findViewById(R.id.rstForSet);
holder.No = (TextView) convertView.findViewById(R.id.NoTextView);
}
return convertView;
}
這是我ViewHolder:
static class ViewHolder {
EditText text1;
EditText text2;
EditText text3;
TextView No;
}
我沒加的數據庫調用,因爲他們是不相關的。我甚至無法立即開始工作。
你沒有在'else'語句中設置你的視圖,你必須設置它。 –