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

如何在Android Auto车载应用的Row中添加双按钮操作?

Android Auto列表项添加双操作按钮解决方案

Android Auto的Row类确实没有addAction()方法,要给列表项添加两个独立操作按钮,你需要使用Row.Builder提供的setPrimaryAction()和setSecondaryAction()方法,分别绑定两个Action实例来实现。

修改后的完整代码

ListTemplate.Builder templateBuilder = new ListTemplate.Builder();
ItemList.Builder itemList = new ItemList.Builder();
templateBuilder.setLoading(isLoading);

if (!isLoading) {
    for (ParkingList parking : parkingList) {
        // 构建第一个操作按钮:跳转详情页
        Action detailAction = new Action.Builder()
                .setTitle("详情")
                .setOnClickListener(() -> 
                    getScreenManager().push(new NextScreen(getCarContext()))
                )
                .build();

        // 构建第二个操作按钮:触发导航(示例逻辑)
        Action navigateAction = new Action.Builder()
                .setTitle("导航")
                .setOnClickListener(() -> {
                    // 这里替换为你的导航逻辑
                    // 示例:启动地图导航Intent
                    // Uri geoUri = Uri.parse("geo:" + parking.getLat() + "," + parking.getLng());
                    // Intent intent = new Intent(Intent.ACTION_VIEW, geoUri);
                    // getCarContext().startActivity(intent);
                })
                .build();

        Row rowItem = new Row.Builder()
                .setTitle(parking.getNome())
                .setImage(new CarIcon.Builder(
                                IconCompat.createWithResource(
                                        getCarContext(),
                                        R.drawable.ic_launcher_foreground))
                                .build(),
                        Row.IMAGE_TYPE_LARGE)
                .setBrowsable(false)
                .addText(parking.getDescrizione())
                .addText(parking.getLat() + " " + parking.getLng())
                // 设置两个操作按钮
                .setPrimaryAction(detailAction)
                .setSecondaryAction(navigateAction)
                // 若需保留点击整行的逻辑,可继续保留以下代码
                // .setOnClickListener(() -> getScreenManager().push(new NextScreen(getCarContext())))
                .build();

        itemList.addItem(rowItem);
    }
    ItemList templateList = itemList.build();
    templateBuilder.setSingleList(templateList);
}
return templateBuilder.setTitle("停车场列表").build();

关键说明

  • setPrimaryAction():设置列表项右侧的主操作按钮(优先级更高,显示在左侧)
  • setSecondaryAction():设置次操作按钮(显示在主按钮右侧)
  • 每个Action通过Action.Builder创建,只需设置按钮标题和对应的点击事件逻辑
  • 如果不需要点击整行的响应逻辑,可以删除原有的setOnClickListener调用

内容的提问来源于stack exchange,提问作者Mohamed Siad Z

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:37:44