繁体   English   中英

使用适配器和数组列表时,我需要在回收视图中的项目上实现单击侦听器 class

[英]I need to implementation click listener class on item in recycle view when using adapter and array list

我想当用户点击回收中的项目时移动第二个活动。 我有以下适配器:

public class AdapterWassafat extends RecyclerView.Adapter<AdapterWassafat.ViewHolder> {
    private ArrayList<Item> itemsList;
    private Context mContext;

    public AdapterWassafat(ArrayList<Item> itemsList, Context mContext) {
        this.itemsList = itemsList;
        this.mContext = mContext;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_wasafat,parent,false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        Item item = itemsList.get(position);
        holder.text.setText(item.getText());
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {
        TextView text;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            text = itemView.findViewById(R.id.text_card_main);
        }
    }
}

我有这个 class 要添加到项目列表中:

public class Item {
    private String text;

    public Item(String text) {
        this.text = text;
    }

    public Item() {
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }
}

这个 class 有回收:

private AdapterWassafat adapter;
private RecyclerView recyclerView ;
private ArrayList<Item> myList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_wasafat);

    recyclerView = findViewById(R.id.wasafat_recyclerView);
    recyclerView.setLayoutManager(new LinearLayoutManager(getBaseContext()));

    adapter = new AdapterWassafat(getMyitem(),getBaseContext());
    recyclerView.setAdapter(adapter);
}
    private ArrayList<Item> getMyitem() {
    ArrayList<Item> list = new ArrayList<>();
    Item tips = new Item();
    tips.setText("وصفة التمر ");
    list.add(tips);

    tips = new Item();
    tips.setText("وصفة اللبن ");
    list.add(tips);

    tips = new Item();
    tips.setText("وصفة الشاي الاخضر ");
    list.add(tips);
    return list;}

当用户单击项目移动到另一个活动时,我需要什么来制作回收视图? 比如,当用户点击项目وصفة الشاي,交换或继续进入这个活动等等。 我尝试了很多方法使它既 select 或单击,但没有成功。

在适配器中:

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    Item item = itemsList.get(position);
    Context context = holder.itemView.getContext();
    holder.text.setText(item.getText());
    holder.itemView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = Intent(context, YourActivity.class);
        intent.putExtra("item", item.getText())
        context.startActivity(intent);
     }
  });
}

在您的其他活动中,获取数据为:

// onCreate()
String value = getIntent().getStringExtra("item", "");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM