簡體   English   中英

如何刪除自定義列表視圖行

[英]How to delete custom listview row

我試圖通過單擊擴展 Baseadapter 的自定義列表視圖適配器來刪除一行或任何行。 我在谷歌上找到了很多解決方案,但沒有一個對我有用。我在這個類的幫助下成功生成了一個列表視圖,但不能刪除一行或任何一行。 這是我的代碼

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.BaseAdapter;

import com.brl.loverfreedatingapp.R;
import com.squareup.picasso.MemoryPolicy;
import com.squareup.picasso.Picasso;

import java.util.ArrayList;

import de.hdodenhof.circleimageview.CircleImageView;

public class WhoLikedMeAdapter extends BaseAdapter {
    private Context context; //context
    private ArrayList<String> masterID = new ArrayList<String>();
    private ArrayList<String> slaveID = new ArrayList<String>();
    private ArrayList<String> masterName = new ArrayList<String>();
    private ArrayList<String> slaveName = new ArrayList<String>();
    private ArrayList<String> slaveUrl = new ArrayList<String>();

    public WhoLikedMeAdapter(Context context, ArrayList<String> masterID, ArrayList<String> slaveID, ArrayList<String> masterName, ArrayList<String> slaveName, ArrayList<String> slaveUrl) {
        this.context = context;
        this.masterID = masterID;
        this.slaveID = slaveID;
        this.masterName = masterName;
        this.slaveName = slaveName;
        this.slaveUrl = slaveUrl;
    }

    @Override
    public int getCount() {
        return masterID.size(); //returns total of items in the list
    }

    @Override
    public Object getItem(int position) {
        return masterID.get(position); //returns list item at the specified position
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // inflate the layout for each list row
        if (convertView == null) {
            convertView = LayoutInflater.from(context).
                    inflate(R.layout.wholikeme_row, parent, false);
        }




        CircleImageView profile_image = (CircleImageView) convertView.findViewById(R.id.profile_image);
        TextView name = (TextView)convertView.findViewById(R.id.name);
        ImageButton unlike = (ImageButton)convertView.findViewById(R.id.unlike);
        ImageButton like = (ImageButton)convertView.findViewById(R.id.like);

        name.setText(slaveName.get(position));

        //--

        if(slaveUrl.get(position).equals("")){
            Picasso.with(context)
                    .load(R.drawable.image_placeholder)
                    //.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
                    .placeholder(R.drawable.image_placeholder)
                    .into(profile_image);
        }else {
            Picasso.with(context)
                    .load(slaveUrl.get(position))
                    //.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
                    .placeholder(R.drawable.image_placeholder)
                    .into(profile_image);
        }



        //-------------

        like.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {




                masterID.remove(position);// not working
                notifyDataSetChanged();


            }
        });

        unlike.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {


                masterID.remove(position);// not working
                notifyDataSetChanged();

            }
        });

        // returns the view for the current row
        return convertView;
    }
}

找到了解決辦法! 我必須刪除一行中的所有數據才能刪除列表視圖行。 以前我只嘗試使用 1 個數據(masterID)。

masterID.remove(position);
slaveID.remove(position);
masterName.remove(position);
slaveName.remove(position);
slaveUrl.remove(position);
notifyDataSetChanged();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM