如何将值从 Item Click RecyclerView 发送到另一个 java 类

Posted

技术标签:

【中文标题】如何将值从 Item Click RecyclerView 发送到另一个 java 类【英文标题】:How to send value from onItemClick RecycleView to other java class 【发布时间】:2020-01-17 03:46:01 【问题描述】:
 @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 字符串值发送给其他类

【问题讨论】:

通过这个 (riptutorial.com/android/example/14581/…) 【参考方案1】:

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

这是Activity中传递数据的示例。

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

在下一个屏幕中获取价值,如下所示

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

【讨论】:

【参考方案2】:

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

How to pass values from RecycleAdapter to MainActivity or Other Activities

【讨论】:

【参考方案3】:

在您的 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");
                
            );

...

最后,在调用activity/fragment:

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

【讨论】:

以上是关于如何将值从 Item Click RecyclerView 发送到另一个 java 类的主要内容,如果未能解决你的问题,请参考以下文章

如何将值从列表视图传递到 detalis Activity

如何将值从一个 html 页面传递到 PHONEGAP 中的另一个 html 页面?

ASP.Net C#MCV - 将值从Ajax Jquery传递给Controller

如何将值从javascript变量传递给剃刀变量?

如何将值从angularjs传递给节点[重复]

Java:如何将值从类/bean传递给servlet