Android 如何在导航模式列表中将my menu.xml传递给Sherlock actionBar
我只是用库Sherlock创建actionBar。所有的工作都很好,但现在我想插入一个下拉列表菜单的酒吧顶部。示例使用字符串数组构建下拉菜单:Android 如何在导航模式列表中将my menu.xml传递给Sherlock actionBar,android,Android,我只是用库Sherlock创建actionBar。所有的工作都很好,但现在我想插入一个下拉列表菜单的酒吧顶部。示例使用字符串数组构建下拉菜单: /** An array of strings to populate dropdown list */ String[] actions = new String[] { "Bookmark", "Subscribe", "Share" }; ArrayAdapter<String> adapter = new Ar
/** An array of strings to populate dropdown list */
String[] actions = new String[] {
"Bookmark",
"Subscribe",
"Share"
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), R.layout.sherlock_spinner_item, actions);
/**用于填充下拉列表的字符串数组*/
字符串[]操作=新字符串[]{
“书签”,
“订阅”,
“分享”
};
ArrayAdapter=新的ArrayAdapter(getBaseContext(),R.layout.sherlock\u微调器\u项,操作);
我想:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), R.layout.sherlock_spinner_item, R.menu.list_news);
ArrayAdapter adapter=new ArrayAdapter(getBaseContext(),R.layout.sherlock\u spinner\u项目,R.menu.list\u新闻);
其中R.menu.list\u新闻:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/classifica"
android:title="@string/classifica"
android:showAsAction="withText"
/>
<item
android:id="@+id/next_match"
android:title="@string/next_match"
android:showAsAction="withText"
/>
<item
android:id="@+id/risultati"
android:title="@string/risultati"
android:showAsAction="withText"
/>
<item
android:id="@+id/top_ten"
android:title="@string/top_ten"
android:showAsAction="withText"
/>
</menu>
这是我的活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/** Create an array adapter to populate dropdownlist */
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), R.layout.sherlock_spinner_item, MY_MENU_XML);
/** Enabling dropdown list navigation for the action bar */
getSupportActionBar().setNavigationMode(com.actionbarsherlock.app.ActionBar.NAVIGATION_MODE_LIST);
/** Defining Navigation listener */
ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
//Toast.makeText(getBaseContext(), "Current Action : " + actions[itemPosition] , Toast.LENGTH_SHORT).show();
return false;
}
};
/** Setting dropdown items and item navigation listener for the actionbar */
getSupportActionBar().setListNavigationCallbacks(adapter, navigationListener);
adapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
LoadData task = new LoadData();
task.execute();
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/**创建阵列适配器以填充dropdownlist*/
ArrayAdapter=新的ArrayAdapter(getBaseContext(),R.layout.sherlock\u微调器\u项,我的菜单\u XML);
/**为操作栏启用下拉列表导航*/
getSupportActionBar().setNavigationMode(com.actionbarsherlock.app.ActionBar.NAVIGATION\u MODE\u列表);
/**定义导航侦听器*/
ActionBar.OnNavigationListener navigationListener=新建OnNavigationListener(){
@凌驾
公共布尔值onNavigationItemSelected(int-itemPosition,long-itemId){
//Toast.makeText(getBaseContext(),“当前操作:+actions[itemPosition],Toast.LENGTH\u SHORT).show();
返回false;
}
};
/**为actionbar设置下拉项和项导航侦听器*/
getSupportActionBar().setListNavigationCallbacks(适配器、navigationListener);
adapter.setDropDownViewResource(R.layout.sherlock\u微调器\u下拉菜单\u项);
LoadData任务=新建LoadData();
task.execute();
}
这里的示例是:您需要在下拉列表中显示文本列表,然后使用下面的代码
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
mActionBar.setDisplayHomeAsUpEnabled(true);
mArrayDropDown=getResources().getStringArray(R.array.dropdown);
ArrayAdapter<String> mAdapter=new ArrayAdapter<String>(ListNavActivity.this, android.R.layout.simple_spinner_item, mArrayDropDown);
mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mActionBar.setListNavigationCallbacks(mAdapter, this);
mActionBar.setNavigationMode(ActionBar.NAVIGATION\u MODE\u列表);
mActionBar.setDisplayHomeAsupaned(true);
mArrayDropDown=getResources().getStringArray(R.array.dropdown);
ArrayAdapter mAdapter=新的ArrayAdapter(ListNavActivity.this,android.R.layout.simple\u微调器\u项,mArrayDropDown);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
setListNavigationCallbacks(mAdapter,this);
这里的下拉列表是字符串数组。
虽然此代码适用于Compact Libarary v7,但它与Sherlock one非常相似。您只需在下拉列表中显示文本,然后在Adapterok中使用数组,然后我使用数组。。。谢谢如果我的建议和回答对你有用,那么就接受它为你的正确答案。