You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expandable RecyclerView子项点击跳转至新Activity实现问询

实现Expandable RecyclerView子项点击跳转Activity的方案

咱们可以通过给子项绑定点击监听,结合Android的Intent组件来实现跳转需求,具体步骤如下:

1. 给适配器添加子项点击回调接口

因为启动Activity需要依赖Context,最好把点击事件的处理逻辑交给宿主Activity,所以先在你的Expandable适配器里定义一个回调接口,用来传递子项点击事件:

public class YourExpandableAdapter extends ExpandableRecyclerViewAdapter<TitleParentViewHolder, TitleChildViewHolder> {
    // 定义子项点击回调接口
    public interface OnChildItemClickListener {
        void onChildClicked(TitleChild childItem);
    }

    private OnChildItemClickListener mClickListener;

    // 提供设置监听的方法
    public void setOnChildItemClickListener(OnChildItemClickListener listener) {
        this.mClickListener = listener;
    }

    // ... 你已有的其他适配器代码(构造方法、父项绑定逻辑等)

    @Override
    protected void onBindChildViewHolder(TitleChildViewHolder holder, int parentPos, int childPos, TitleChild child) {
        holder.detailText.setText(child.getDetail());
        
        // 给子项根布局绑定点击事件
        holder.itemView.setOnClickListener(v -> {
            if (mClickListener != null) {
                mClickListener.onChildClicked(child);
            }
        });
    }
}

2. 在宿主Activity中处理跳转逻辑

在初始化Expandable RecyclerView的Activity里,给适配器设置监听,拿到点击事件后启动目标Activity:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 你已有的初始化代码
        List<TitleParent> parentData = TitleCreator.getParentList();
        YourExpandableAdapter adapter = new YourExpandableAdapter(parentData);
        
        // 设置子项点击监听
        adapter.setOnChildItemClickListener(childItem -> {
            // 启动目标Activity,比如DetailActivity
            Intent intent = new Intent(MainActivity.this, DetailActivity.class);
            // 如果需要传递子项数据,可通过Intent.putExtra,比如:
            // intent.putExtra("DETAIL_CONTENT", childItem.getDetail());
            startActivity(intent);
        });

        // 绑定适配器到RecyclerView
        ExpandableRecyclerView recyclerView = findViewById(R.id.expandable_recycler);
        recyclerView.setAdapter(adapter);
    }
}

3. 关键注意事项

  • 务必在AndroidManifest.xml中注册目标Activity,否则会触发跳转失败的异常:
<activity android:name=".DetailActivity"/>
  • 如果需要给新页面传递子项的具体数据,可通过Intent.putExtra()传递字符串、序列化对象等,再在目标Activity中用getIntent().getStringExtra()等方法取出。
  • 如果你用的是第三方Expandable RecyclerView库(比如BigNerdRanch的实现),ViewHolder的绑定细节可能略有不同,但核心逻辑都是通过回调把点击事件传递给Activity,再启动新页面。

这样就能实现点击任意子项"Detail"时跳转到新Activity的需求啦!

内容的提问来源于stack exchange,提问作者XcombeX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:58:49