枕上诗书闲处好,门前风景雨来佳。这篇文章主要讲述如何在Android ListView中为菜单项创建图标?相关的知识,希望能为你提供帮助。
【如何在Android ListView中为菜单项创建图标()】我正在使用ListView
来显示我的应用程序的主屏幕。
主屏幕基本上是一个menu
进入应用程序的不同部分。目前,我有ListView
,其内容以onCreate
方法编程方式添加。
以下是执行此操作的代码段:
String[] mainItems = {
"Inbox", "Projects", "Contexts", "Next Actions"
}@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
setListAdapter(new ArrayAdapter<
String>
(
this, android.R.layout.simple_list_item_1, mainItems));
registerForContextMenu(getListView());
}
所以菜单基本上只是一堆节点,文本包含在mainItems数组中。我知道我可以创建一个包含ImageView和TextView的XML布局(即
R.layout.mainMenu_item
),但我不确定如何设置ImageView的图标。我已经看到有一个setImageResouce(int resId)方法,但是在使用ArrayAdapter生成时使用它的方法让我望而却步。有一个更好的方法吗?答案我通常为ListView做的是通过扩展方便的BaseAdapter类来实现我自己的Adapter。您将实现的抽象方法之一是getView(),如前面提到的海报。从那里你可以膨胀一个包含ImageView的布局,使用findViewById获取它的引用,并将图像设置为你添加到资源中的任何drawable。
public View getView(int position, View convertView, ViewGroup parent) {View row = inflater.inflate(R.layout.menu_row, null);
ImageView icon = (ImageView) row.findViewById(R.id.icon);
icon.setImageResource(..your drawable's id...);
return view;
}
另一答案来自ArrayAdapter的Google文档。
要使用TextViews之外的其他内容来显示数组,例如ImageViews,或者除了toString()之外还有一些数据填充视图,覆盖getView(int,View,ViewGroup)以返回所需的视图类型。
推荐阅读
- android.content.res.Resources $ NotFoundException API等级19
- Android中的自定义选项菜单栏问题
- Build.gradle无法解析com.android.support
- DotNetCore.NPOI和.Net Core 2 MVC Web App
- 什么填充ScriptResourceMapping()
- 当jboss 7服务器启动时,在jndi查找中获取appname
- 无法引用webapp struts中的资源
- Android Firebase FireStore实时更新分页
- 将Raspberry PI 3与Android Things连接到Arduino [已关闭]