首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在XML中创建一个包含完整动态操作的列表(当前解决方案:3个数组)

如何在XML中创建一个包含完整动态操作的列表(当前解决方案:3个数组)
EN

Stack Overflow用户
提问于 2017-02-01 16:49:15
回答 1查看 28关注 0票数 0

我想做一个主菜单,这将是不同的取决于用户的喜好。

现在,我在我的XML值中设置了不同的数组,用于标题、图标和字符串值,以便填充回收视图。

所以看起来是这样的:

代码语言:javascript
复制
<string-array name="titlelist_A">
    <item>Item 1</item>
    <item>Item 2</item>
    <item>Item 2</item>
    ...
</string-array>

<integer-array name="iconlist_A">
    <item>@drawable/ic_menu_item1</item>
    <item>@drawable/ic_menu_item2</item>
    <item>@drawable/ic_menu_item3</item>
    .....
</integer-array>

<string-array name="actionlist_A">
    <item>Activity1</item>
    <item>Activity2</item>
    <item>Activity3</item>
    .....
</integer-array>

在我的适配器构造函数中,我将传递所有我复制的数组(A,B,C,D,E,...)以便将相应的数组传递给用户偏好。

在我的RecyclerView适配器中,我使用这些数组来设置标题、可绘制的和OnClickListener

代码语言:javascript
复制
@Override
public void onBindViewHolder(MenuViewHolder holder, int position) {
    holder.title.setText(titleList[position]);
    holder.icon.setImageResource(iconList.getResourceId(position,0));
}

这似乎是一个沉重的解决方案,我想知道是否有人遇到过类似的问题,他们发现了什么……

EN

回答 1

Stack Overflow用户

发布于 2017-02-01 17:26:05

好了,我终于使用了一个菜单:

代码语言:javascript
复制
    PopupMenu p = new PopupMenu(context, null);
    menu = p.getMenu();
    context.getMenuInflater().inflate(R.menu.menu_b, menu);

在我的适配器中:

代码语言:javascript
复制
    MenuItem item = menu.getItem(position);
    holder.title.setText(item.getTitle());
    holder.icon.setImageDrawable(item.getIcon());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41975413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档