1

i'm trying to delete custom listview's item on button click , delete function is working correctly, but prblem is when i click on button then item donot delete on the spot, when i reload

@Override
public View getView(final int paramInt, View paramView, ViewGroup paramViewGroup) {
    // TODO Auto-generated method stub

    LayoutInflater inflator = activity.getLayoutInflater();
    if (paramView == null) {
        view = new ViewHolder();
        paramView = inflator.inflate(R.layout.listview_row, null);

        view.header = (TextView) paramView.findViewById(R.id.tvHeader);
        view.from = (TextView) paramView.findViewById(R.id.tvfrom);
        view.to = (TextView) paramView.findViewById(R.id.tvto);
        view.value = (EditText) paramView.findViewById(R.id.etValue);
        view.imgViewFlag = (ImageView) paramView.findViewById(R.id.ibclose);
        view.result = (TextView) paramView.findViewById(R.id.tvResult);

        paramView.setTag(view);

    } else {
        view = (ViewHolder) paramView.getTag();
    }

    view.header.setText(Header.get(paramInt));
    view.from.setText(From.get(paramInt));
    view.to.setText(To.get(paramInt));
    view.value.setText(Value.get(paramInt));
    view.imgViewFlag.setImageResource(close.get(paramInt));
    view.value.setFocusableInTouchMode(false);
    view.value.setFocusable(false);
    view.imgViewFlag.setFocusableInTouchMode(false);
    view.imgViewFlag.setFocusable(false);
    view.imgViewFlag.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            int i=paramInt+1;
            File f1 = new File("/data/data/com.example.converter/shared_prefs/"+i+".xml");



            if(f1.exists()){
                f1.delete();
                 Header.remove(paramInt);
                 From.remove(paramInt);
                 close.remove(paramInt);
                 To.remove(paramInt);
                 Value.remove(paramInt);
            }
            else{
                for(int l = i;i<6;){
                    File f2 = new File("/data/data/com.example.converter/shared_prefs/"+l+".xml");
                    if(f2.exists()){
                        f2.delete();
                         Header.remove(paramInt);
                         From.remove(paramInt);
                         close.remove(paramInt);
                         To.remove(paramInt);
                         Value.remove(paramInt);
                        break;
                    }
                    else{
                        l++;
                    }
                }

            }

        }
    });

    return paramView;

please help me ,I'm very confused how i do it, i want to delete that item when i click on button and it does not delete when i click on button that does not delete on that time........

4

1 に答える 1

4

コードで正しく機能しているリストビューからアイテムを削除するためのコードを投稿しています。

あなたはnotifysetchangedを呼び出すのを忘れました。

    @Override
public View getView(int position, View convertView, ViewGroup parent) 
{
    View row = null;
    LayoutInflater inflater = getLayoutInflater();

    row = inflater.inflate(R.layout.one_result_details_row, parent, false);

    // inflate other items here : 
    Button deleteButton = (Button) row.findViewById(R.id.Details_Button01);
     deleteButton.setTag(position);

    deleteButton.setOnClickListener(
        new Button.OnClickListener() {
            @Override
            public void onClick(View v) {
                Integer index = (Integer) view.getTag();
                items.remove(index.intValue());  
                notifyDataSetChanged();
            }
        }
    );

次の回答をご覧ください

1) Android で ListView アイテムを削除する

2)選択した項目を ListView から削除する

まだ問題が発生している場合はお知らせください...

ありがとう

于 2013-02-07T11:53:20.357 に答える