有没有人使用RecyclerView找到一种方法来设置一个onClickListener项目RecyclerView?我想为每个项目的每个布局设置一个监听器,但这似乎有点太麻烦我确信有一种方法RecyclerView可以听取这个onClick事件,但我无法弄明白.
我使用RecyclerView适配器来显示活动内部的数据,我想onClickListener在活动内部实现,目前,我onClickListener正常设置内部适配器,工作正常.
public void onBindViewHolder(MyHolder holder, final int position) {
final Listdata data = listdata.get(position);
holder.vname.setText(data.getName());
holder.vname.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(activity, "clicked on " +position, Toast.LENGTH_SHORT).show();
}
});
}
Run Code Online (Sandbox Code Playgroud)
但是我想在活动中实现它,所以我有更大的控制权.这不符合我的目的.我认为这对我们很多人都有用.
我有一个View.OnClickListener,Recycler View但是每当我单击视图时,它都不会触发该onClick事件
这是代码:
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
TextView name;
ImageView image;
Context context;
ArrayList<Categories_Model_Class> arrayList;
public ViewHolder(View view, Context context, ArrayList<Categories_Model_Class> arrayList) {
super(view);
name = view.findViewById(R.id.category_name);
image = view.findViewById(R.id.category_image);
this.context = context;
this.arrayList = arrayList;
view.setOnClickListener(this);
Log.i("Created", "ViewHolder");
}
@Override
public void onClick(View view) {
//Pair<View, String> pair1 = Pair.create((View) this.image, this.image.getTransitionName());
Intent intent = new Intent(context, FullWallpaperViewActivity.class);
//ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity)context, pair1);
context.startActivity(intent);
Log.i("TOUCH", "TOUCH");
}
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?
CardView …
android onclicklistener android-viewholder android-recyclerview
我想在我的项目上添加点击监听器,RecyclerView这样当我点击某个项目时,它会启动一个新项目Intent并从 Web 服务器检索有关该项目的数据。我尝试了很多建议,但没有一个有帮助。
我的 RecylerView 类
public class GetPrice extends AppCompatActivity {
private RecyclerView recyclerView;
private GridLayoutManager gridLayoutManager;
private CustomAdapter adapter;
private List<MyData> dataList;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.getpricerecycle);
recyclerView =(RecyclerView) findViewById(R.id.recycler_view);
dataList = new ArrayList<>();
load_data_from_server(0);
gridLayoutManager = new GridLayoutManager(this,1);
recyclerView.setLayoutManager(gridLayoutManager);
adapter = new CustomAdapter(this,dataList);
recyclerView.setAdapter(adapter);
}
private void load_data_from_server(final int id) {
AsyncTask<Integer,Void,Void> task = new AsyncTask<Integer, Void, Void>() {
@Override
protected Void doInBackground(Integer... params) {
OkHttpClient client = new …Run Code Online (Sandbox Code Playgroud)