首页 > 解决方案 > 在 RecyclerView Fragment 上使用 setOnClickListener 移动到另一个活动

问题描述

我想(1)传递位置变量并(2)在单击项目时打开一个新活动。

我发现我需要创建Activity变量才能使用Intent,我还发现我可以使用putExtra来传递位置变量。

虽然下面的代码适用于regular_activity.java,但它不适用于fragment.java。当我打开这个片段时,它会完全关闭应用程序。

@Override
public void onClick(View view) {
    Intent int_detail = new Intent(activity, bottom_nav_search_details.class);
    int_detail.putExtra("position", position);
    activity.startActivity(int_detail); }

以防万一有人觉得有用,这里有更长的代码行。当我删除上述部分(意图部分)时,一切正常——当我点击不同的项目时,日志成功显示不同的位置。

private Activity activity;
@Override
public void onBindViewHolder(@NonNull ExampleViewHolder holder, final int position) {
    final ExampleItem currentItem = exampleList.get(position);

    holder.imageView.setImageResource(currentItem.getImageResource());
    holder.textView1.setText(currentItem.getText1());

    holder.parentLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.i(TAG, "Clicked " + position);
            Intent int_detail = new Intent(activity, bottom_nav_search_details.class);
            int_detail.putExtra("position", position);
            activity.startActivity(int_detail);
        }
    });
}

标签: androidandroid-fragmentsandroid-intentonclickonclicklistener

解决方案


推荐阅读