pie*_*ier 2 android navigation-drawer
我有一个类似谷歌应用程序的导航抽屉(播放音乐,播放电影等..)
一切都很好; 我唯一的问题是:在创建抽屉之后以及任何选择或点击完成之前,我无法弄清楚如何将文本设置为BOLD!执行
后我设置粗体没有问题onItemClick,但是如何在创建抽屉后立即执行此操作?
我试图从抽屉里面的列表中获取View引用,但它不起作用.
有人能帮我吗?
这是我的导航抽屉代码
mNavDrawerStrings = getResources().getStringArray(R.array.action_bar_list);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_navigation_drawer);
// Set the adapter for the list view
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.navigation_drawer_list_item, mNavDrawerStrings));
mDrawerList.setItemChecked(0, true);
mDrawerList.setSelection(0);
NavigationDrawerItemClickListener navDrawerClickListener
= new NavigationDrawerItemClickListener(this, mDrawerList, mDrawerLayout);
mDrawerList.setOnItemClickListener(navDrawerClickListener);
// enable ActionBar app icon to behave as action to toggle nav drawer
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
mDrawerLayout.setDrawerShadow
(R.drawable.drawer_shadow, GravityCompat.START);
mDrawerToggle = new CustomActionBarDrawerToggle(this, mDrawerLayout);
mDrawerLayout.setDrawerListener(mDrawerToggle);
Run Code Online (Sandbox Code Playgroud)
Mar*_*rqs 13
您需要保留选择,以便即使选定项目超出屏幕,所选项目也会保持选中状态.要更改文本颜色和项目背景,您可以使用颜色/可绘制状态列表资源 http://developer.android.com/guide/topics/resources/color-list-resource.html
但是,如果您想要做更多的事情,则需要提供自定义适配器.像这样的东西:
public class MyArrayAdapter extends ArrayAdapter<String>{
private int selectedItem;
public MyArrayAdapter(Context context, int resource, String[] objects) {
super(context, resource, objects);
}
public void selectItem(int selectedItem){
this.selectedItem = selectedItem;
notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = super.getView(position, convertView, parent);
((TextView)convertView).setTypeface(null, position == selectedItem ? Typeface.BOLD : Typeface.NORMAL);
return convertView;
}
}
Run Code Online (Sandbox Code Playgroud)
并在onItemClick()中:
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long arg3) {
((MyArrayAdapter)adapterView.getAdapter()).selectItem(position);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3452 次 |
| 最近记录: |