我正在尝试使用带有 hashmap 的 simpleadapter 构建 navigationDrawer Android 菜单。
这是我的代码:我不知道如何为每个项目检索 txt 和 img 的值来构建我的导航抽屉菜单的每个项目。
你能看看我的代码吗?
我知道可以使用这些行来做到这一点:
SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), listinfo, R.layout.drawer_list_item, from, to);
mDrawerList.setAdapter(adapter);
但我需要实现 getView 以便为每个项目设置 TypeFace。
String[] names = new String[]{
"Home",
"International",
"National",
"High Tech",
"Sports",
};
/*Array of Images*/
int[] image = new int[] {
R.drawable.ic_action_home,
R.drawable.ic_action_globe,
R.drawable.ic_action_feed,
R.drawable.ic_action_tv,
R.drawable.ic_action_ball,
};
List<HashMap<String, String>> listinfo = new ArrayList<HashMap<String, String>>();
listinfo.clear();
for(int i=0;i<names.length;i++){
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("name", names[i]);
hm.put("image", Integer.toString(image[i]));
listinfo.add(hm);
}
// Keys used in Hashmap
final String[] from = { "image", "name" };
int[] to = { R.id.img, R.id.txt };
// The 2 followings lines works fine but i want to implement getView in order to set Typeface on my text
// SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), listinfo, R.layout.drawer_list_item, from, to);
// mDrawerList.setAdapter(adapter);
SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), listinfo, R.layout.drawer_list_item, from, to){
@Override
public View getView(int pos, View convertView, ViewGroup parent){
View v = convertView;
if(v== null){
LayoutInflater vi = (LayoutInflater)getSystemService(getBaseContext().LAYOUT_INFLATER_SERVICE);
v=vi.inflate(R.layout.drawer_list_item, null);
}
TextView tv = (TextView)v.findViewById(R.id.txt);
tv.setText(??????????);
tv.setTypeface(faceBold);
return v;
}
};
mDrawerList.setAdapter(adapter);