我如何从boyh recyclerview和存储android工作室删除项目

时间:2017-11-24 20:35:31

标签: java android android-recyclerview

这是我第一次使用recyclerview,当我调用它时我有问题添加功能我要从存储和recyclerview中删除项目文件 谢谢你的帮助

这是我第一次使用recyclerview,当我调用它时我有问题添加功能我要从存储和recyclerview中删除项目文件 谢谢你的帮助

这是适配器类:

package net.simplifiedlearning.recyclerviewexample;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;


import java.util.List;

public class ProductAdapter extends 
RecyclerView.Adapter<ProductAdapter.ProductViewHolder> {


//this context we will use to inflate the layout
private Context mCtx;

//we are storing all the products in a list
private List<Product> productList;

//getting the context and product list with constructor
public ProductAdapter(Context mCtx, List<Product> productList) {
    this.mCtx = mCtx;
    this.productList = productList;
}

@Override
public ProductViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    //inflating and returning our view holder
    LayoutInflater inflater = LayoutInflater.from(mCtx);
    View view = inflater.inflate(R.layout.layout_products, null);
    return new ProductViewHolder(view);
}

@Override
public void onBindViewHolder(ProductViewHolder holder, int position) {
    //getting the product of the specified position
    Product product = productList.get(position);

    //binding the data with the viewholder views
    holder.textViewTitle.setText(product.getTitle());
    holder.textViewShortDesc.setText(product.getShortdesc());
    holder.textViewRating.setText(String.valueOf(product.getRating()));
    holder.textViewPrice.setText(String.valueOf(product.getPrice()));

    holder.imageView.setImageDrawable(mCtx.getResources().getDrawable(product.getImage()));

}


@Override
public int getItemCount() {
    return productList.size();
}


class ProductViewHolder extends RecyclerView.ViewHolder {

    TextView textViewTitle, textViewShortDesc, textViewRating, textViewPrice;
    ImageView imageView;

    public ProductViewHolder(View itemView) {
        super(itemView);

        textViewTitle = itemView.findViewById(R.id.textViewTitle);
        textViewShortDesc = itemView.findViewById(R.id.textViewShortDesc);
        textViewRating = itemView.findViewById(R.id.textViewRating);
        textViewPrice = itemView.findViewById(R.id.textViewPrice);
        imageView = itemView.findViewById(R.id.imageView);
    }
}

}

这是主要活动:

package net.simplifiedlearning.recyclerviewexample;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

//a list to store all the products
List<Product> productList;

//the recyclerview
RecyclerView recyclerView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //getting the recyclerview from xml
    recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));

    //initializing the productlist
    productList = new ArrayList<>();


    //adding some items to our list
    productList.add(
            new Product(
                    1,
                    "Apple MacBook Air Core i5 5th Gen - (8 GB/128 GB SSD/Mac OS Sierra)",
                    "13.3 inch, Silver, 1.35 kg",
                    4.3,
                    60000,
                    R.drawable.macbook));

    productList.add(
            new Product(
                    1,
                    "Dell Inspiron 7000 Core i5 7th Gen - (8 GB/1 TB HDD/Windows 10 Home)",
                    "14 inch, Gray, 1.659 kg",
                    4.3,
                    60000,
                    R.drawable.dellinspiron));

    productList.add(
            new Product(
                    1,
                    "Microsoft Surface Pro 4 Core m3 6th Gen - (4 GB/128 GB SSD/Windows 10)",
                    "13.3 inch, Silver, 1.35 kg",
                    4.3,
                    60000,
                    R.drawable.surface));

    //creating recyclerview adapter
    ProductAdapter adapter = new ProductAdapter(this, productList);

    //setting adapter to recyclerview
    recyclerView.setAdapter(adapter);
}
}

1 个答案:

答案 0 :(得分:0)

要从Recycler和List中删除,请使用此代码

public void removeAt(int position) {
    productList.remove(position);
    notifyItemRemoved(position);
    notifyItemRangeChanged(position, productList.size());
}

要实现它,请在onClickListener中写入removeAt(getAdapterPosition());,例如,如果要在onClick上执行此操作 如果你有mp3文件并且你想从你的filder中删除一个,那么初始化File myFile = new File(path)。然后你可以使用.delete()方法。例如,myFile.delete();就像那样