Androidとjavaを学びたいと思っています.ExplandableListViewsで問題が発生しています。Android ExpandableListView getChildViewがデータの混乱を招く
私はそれの下にいくつかのeditTextsとtextViewsを持つExpandablelistviewを作ろうとしています。 1から20までのグループがあり、各グループには3つのeditTextと1つのtextViewがあります。
私は起動時にデータベースからデータを取り込み、ユーザーがデータを変更したら元に戻します。私はそれをやろうとしましたが、そのデータはすべての場所にあるようです。簡単なテスト:
- 1子各
- は、すべてのグループの各EDITTEXT
- 崩壊にデータを追加し、最初の1
に彼らに最後の1を拡張し、3グループを追加します - >結果はそのグループであります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'ステートメントであなたのビューを設定しません、あなたはそれを設定する必要があります。 –