我有開始了一個gridview空的,那麼當用戶觸摸一個按鈕,他們增加一個「運動」到一個列表,然後我通知這樣GridView的是混合了圖像
Exercise e = new Exercise();
w.addExercise(e);
bwGVA.notifyDataSetChanged();
在GridView那麼出現空的gridview框,如果用戶觸摸它,則會出現一系列圖像,並且它們所觸及的圖像將成爲gridview中的imageview。但是,如果他們觸摸按鈕並向GridView添加另一個練習,它已經由deafult擁有相同的圖像。它應該是空白的
但這不是我認爲我的問題在哪裏。下面是我的getview在gridview適配器
public class BuildWorkoutGridViewAdapter extends BaseAdapter{
private static ArrayList<Exercise> ExerciseList;
Context c;
public BuildWorkoutGridViewAdapter(Context context, ArrayList<Exercise> _list) {
c = context;
ExerciseList = _list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return ExerciseList.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v;
if(convertView == null){
LayoutInflater li = (LayoutInflater) c
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = li.inflate(R.layout.build_exercise_view, null);
}else{
v = (View) convertView;
}
Exercise e = ExerciseList.get(position);
TextView Reps = (TextView) v.findViewById(R.id.tvCustomReps);
TextView Sets = (TextView) v.findViewById(R.id.tvCustomSets);
ImageView ivThumbnail = (ImageView) v
.findViewById(R.id.ivBuildWorkout_Thumbnail);
if (e.getSets() != null) {
Sets.setText(e.getSets().trim());
}
if (e.getReps() != null) {
Reps.setText(e.getReps().trim());
}
if (e.getFilepath() != null) {
System.out.println("filepath:" + e.getFilepath().trim());
BitmapHelper BH = new BitmapHelper(c);
BH.loadSingleBitmap("WorkoutImages/" + e.getFilepath().trim(),
c, ivThumbnail);
e.setImageStatus(true);
}
// TODO Auto-generated method stub
return v;
}
@Override
public Exercise getItem(int position) {
// TODO Auto-generated method stub
return ExerciseList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
}
我認爲它與convertview有關。但我無法弄清楚什麼是錯的。
w.addExercise(e);你可以在這裏修改這個功能嗎? – Triode
w是一個練習列表。我只是將一個對象添加到列表中。沒有方法 –