我想在 Android Auto 的汽车应用程序中显示一个列表。该列表应包含带有两个按钮的项目,用于单独的操作。
我尝试添加 addAction(),但它似乎在 Row Class 中不可用。有人可以帮助我构建一个 Row 或一个带有两个按钮的列表项,以便我可以将其添加到 ItemList.Builder 中吗?
我当前的代码是
ListTemplate.Builder templateBuilder = new ListTemplate.Builder();
ItemList.Builder itemList = new ItemList.Builder();
templateBuilder.setLoading(isLoading);
if(!isLoading) {
for (ParkingList parkingList : parkingList) {
Row rowItem = new Row.Builder()
.setTitle(parkingList.getNome())
.setImage(new CarIcon.Builder(
IconCompat.createWithResource(
getCarContext(),
R.drawable.ic_launcher_foreground))
.build(),
Row.IMAGE_TYPE_LARGE)
.setBrowsable(false)
.addText(parkingList.getDescrizione())
.addText(parkingList.getLat() + " " + parkingList.getLng())
.setOnClickListener(
() ->
getScreenManager()
.push(new NextScreen(getCarContext())))
.build();
itemList.addItem(rowItem);
}
ItemList templateList = itemList.build();
templateBuilder.setSingleList(templateList);
}
return templateBuilder.setTitle("Parking List").build();
在
@Override
public Template onGetTemplate() {
ListTemplate.Builder templateBuilder = new ListTemplate.Builder();
ItemList.Builder itemListBuilder = new ItemList.Builder();
ItemList itemList = itemListBuilder
.setOnSelectedListener(this::onSelected).build();
templateBuilder.addSectionedList(SectionedItemList.create(itemList, "some section header title"));
return templateBuilder.setTitle("MY TITLE").setHeaderAction(BACK).build();
}
然后添加这个:
private void onSelected(int selectedIndex) {
}
希望对你有帮助
连续使用 addAction() 是允许的,但尝试包含多个操作将导致异常:“由 java.lang.IllegalArgumentException 引起:操作列表超出了 1 个操作的最大数量。”还建议避免在一行中执行两个不同的操作。如果需要双重操作,建议使用切换开关。这允许根据切换状态执行两个操作。
Row.Builder()
.setImage(rowIcon)
.setToggle(Toggle.Builder {
if (it) {
println("On")
} else {
println("Off")
}
}
.setChecked(false)
.build())
.setTitle(title)
.build()
}