我试图在Action Bar Compat中构建一个下拉菜单,根据开发示例:http://developer.android.com/guide/topics/ui/actionbar.html#Dropdown
我无法通过onNavigationItemSelected来解雇。
正在生成操作栏中的微调器下拉项目,位于操作栏标题的右侧。当我按下它时,我看到三角形图标变为蓝色。 OnNreigationListener和Sting []字符串正在OnCreate中运行。
我怎样才能让它发挥作用?
public class Main extends ActionBarActivity {
private ActionBar actionBar;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
spinner = new Spinner(this);
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this,
R.array.operating_systems, android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(mSpinnerAdapter);
ActionBar.OnNavigationListener mOnNavigationListener = new ActionBar.OnNavigationListener() {
String[] strings = getResources().getStringArray(R.array.operating_systems);
@Override
public boolean onNavigationItemSelected(int position, long itemId) {
ListContentFragment newFragment = new ListContentFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.fragment_container, newFragment, strings[position]);
ft.commit();
return true;
}
};
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_share:
Toast.makeText(this, "Refresh selected", Toast.LENGTH_SHORT)
.show();
break;
case R.id.action_settings:
Toast.makeText(this, "Settings selected", Toast.LENGTH_SHORT)
.show();
break;
default:
break;
}
return true;
}
}
答案 0 :(得分:1)
看起来你没有打电话给ActionBar.setListNavigationCallbacks
。
示例中的第4步:
使用setListNavigationCallbacks()设置下拉列表的回调。例如:
actionBar.setListNavigationCallbacks(mSpinnerAdapter, mNavigationCallback);