【问题标题】:delete item from custom listview从自定义列表视图中删除项目
【发布时间】:2013-02-07 11:28:00
【问题描述】:

我正在尝试在单击按钮时删除自定义列表视图的项目,删除功能正常工作,但问题是当我单击按钮时,当我重新加载时项目不会当场删除

@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;

请帮助我,我很困惑我是怎么做的,我想在单击按钮时删除该项目,而当我单击当时没有删除的按钮时它不会删除..... ...

【问题讨论】:

  • 更新列表视图后,您是否在适配器上调用了notifyDataSetChanged()?

标签: android listview


【解决方案1】:

我正在发布从列表视图中删除项目的代码,该代码在我的代码中正常工作。

你忘记调用 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) Remove ListView items in Android

2) Remove selected item from ListView

如果您仍然遇到任何问题,请告诉我...

谢谢

【讨论】:

  • 兄弟我想从自定义列表适配器中删除行
  • 我想在单击按钮时删除该项目,并且该按钮来自自定义列表视图
  • 您给出的代码仅适用于简单适配器,但我需要适用于自定义列表适配器的代码
  • @Rohit 用于自定义列表适配器,请参见以下代码...stackoverflow.com/questions/10311431/…
  • 兄弟,我没有任何适配器那么我如何使用这个例子
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多