如何将值从onItemClick RecycleView发送到其他Java类

时间:2019-09-16 10:07:22

标签: android class variables android-recyclerview onitemclick

 @Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
    String clicktemplate = modelClassesListt.get(i).getTitle();
    Toast.makeText(Template.this ,modelClassesListt.get(i).getTitle() , Toast.LENGTH_SHORT).show();
}

我想将此clicktemplate字符串值发送给其他类

3 个答案:

答案 0 :(得分:0)

  

您必须将值放入IntentBundle中并将其发送到下一个屏幕。

以下是Activity中传递数据的示例。

Intent intent = new Intent(this, YourNextActivity.class);
                intent.putExtra("key_clicktemplate", clicktemplate);
                startActivity(intent);
  

在下一个屏幕中获取价值

String value = getIntent().getExtras().getString("key_clicktemplate");

答案 1 :(得分:0)

您可以使用多种方法来实现您的需求。下面的线程对您很有用。

How to pass values from RecycleAdapter to MainActivity or Other Activities

答案 2 :(得分:0)

在您的recyclerview类中,添加onclicklistener接口,并将侦听器包含在构造函数中:

private final OnItemClickListener listener;

public interface OnItemClickListener {
        void onItemClick(myObject item, int position, String message);
    }

public MyRecyclerViewAdapter(Activity pActivity, ArrayList<myObject> pList, int pItemLayout, OnItemClickListener listener) {
        activity = pActivity;
        rewardsList = pList;
        layoutID=pItemLayout;
        this.listener = listener;
    }

然后。在onCreateViewHolder中:

@Override
    public void onBindViewHolder(MyHolder holder, int position) {
        myObject currentItem = rewardsList.get(position);
        holder.bindList(currentItem, listener, position);
    }

接下来,在您的ViewHolder中添加:

class MyHolder extends RecyclerView.ViewHolder {

        View masterView;


        MyHolder(View itemView) {
            super(itemView);

            masterView = itemView;


        }

        void bindList(final myObject item, final OnItemClickListener listener, int position){

            masterView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    listener.onItemClick(item, position,"edit");
                }
            });

...

最后,在呼叫活动/片段时:

MyRecyclerViewAdapter adapter = new MyRecyclerViewAdapter(mActivity, list, R.layout.item, new MyRecyclerViewAdapter.OnItemClickListener() {
                    @Override
                    public void onItemClick(MyObject item, int position, String message) {

                        //item clicks handled here

                        switch (message){
                            case ITEM_OPEN:
                                // Do whatever you need with clicked item here
                                break;

                            case ITEM_EDIT:
                                // Do whatever you need with clicked item here
                                break;


                        }
                    }
                }, mRecyclerView);