自定义ListView重复旧内容而不是新内容

时间:2015-02-15 11:39:14

标签: java android listview repeat

所以,我正在为每张卡动态创建项目。它工作得很好,花花公子,直到它必须创建一个索引> = 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));
        }
    }

0 个答案:

没有答案