所以,我正在为每张卡动态创建项目。它工作得很好,花花公子,直到它必须创建一个索引> = 3的卡。一旦它到达那里,它会重新创建旧的内容。
不知何故,它没有将索引3指定为具有null的converView。它有点介于创建和未创建之间。
@Override
public View getView(final int index, View convertView, ViewGroup parent) {
View v = convertView;
LayoutInflater inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
pref = activity.getSharedPreferences("pref", Context.MODE_PRIVATE);
final ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
v = inflater.inflate(R.layout.view_card, parent, false);
layout = (LinearLayout)v.findViewById(R.id.card_ll_details);
v.setTag(holder);
holder.title = (TextView)v.findViewById(R.id.card_title);
holder.button = (Button)v.findViewById(R.id.card_addNote);
holder.note = (TextView)v.findViewById(R.id.card_note);
getDetails(index, v);
Toast.makeText(activity, Integer.toString(index), Toast.LENGTH_SHORT).show();
} else {
holder = (ViewHolder)v.getTag();
//Toast.makeText(activity, "hi" +Integer.toString(index), Toast.LENGTH_SHORT).show();
}
holder.title.setText(cardList.get(index).getTitle());
holder.note.setText(cardList.get(index).getNote());
holder.button.setText(cardList.get(index).getButtonText());
String bs = cardList.get(index).getNote();
if(bs.isEmpty()){
holder.note.setVisibility(View.INVISIBLE);
holder.button.setText("Add Note");
} else {
holder.note.setVisibility(View.VISIBLE);
holder.button.setText("Delete Note");
}
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final int ADD = 1;
final int DELETE = 2;
final int INDEX = index;
if (holder.button.getText().toString().contains("Add")) {
Intent i = new Intent(activity, Notes.class);
i.putExtra("notes", holder.title.getText().toString());
i.putExtra("cardIndex", INDEX);
activity.startActivityForResult(i, ADD);
} else {
Intent i = new Intent(activity, Confirmation.class);
i.putExtra("cardIndex", INDEX);
activity.startActivityForResult(i, DELETE);
}
}
}
);
return v;
}
private void getDetails(int index, View v) {
LinearLayout layout = (LinearLayout) v.findViewById(R.id.card_ll_details);
ArrayList<TagSpinner> spinnerList = cardList.get(index).getSpinnerList();
ArrayList<TagRadioGroup> radioList = cardList.get(index).getRadioGroup();
ArrayList<CheckBox> checkList = cardList.get(index).getCheckList();
for(TagSpinner tagSpinner : spinnerList) {
layout.addView(cardList.get(index).inputSpinner(tagSpinner,activity));
}
for(TagRadioGroup group : radioList){
layout.addView(cardList.get(index).inputRadioGroup(activity, group));
}
for (int i = 0; i < checkList.size(); i++) {
layout.addView(cardList.get(index).inputCheckList(checkList.get(i), activity));
}
}