如何将值从 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】:您必须在
Intent
或Bundle
中输入值并将其发送到下一个屏幕。
这是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 类的主要内容,如果未能解决你的问题,请参考以下文章
如何将值从一个 html 页面传递到 PHONEGAP 中的另一个 html 页面?