我正在尝试实现一个下拉列表作为 Android 中操作栏的导航。 我可以看到下拉列表和项目,但我无法获得点击事件。
自从我按照 http://developer.android.com/guide/topics/ui/actionbar.html 中的教程学习后,我不确定我错过了什么
这是我的代码:
public void onCreate(Bundle savedInstanceState) {
OnNavigationListener mOnNavigationListener;
super.onCreate(savedInstanceState);
// setContentView(R.layout.info_layout);
// getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setNavigationMode(getSupportActionBar().NAVIGATION_MODE_LIST);
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.navigation_array, android.R.layout.simple_dropdown_item_1line);
mOnNavigationListener = new OnNavigationListener() {
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
switch (itemPosition) {
case 1:
Intent i = new Intent();
i.setClass(getApplicationContext(), ZoekAndBoekActivity.class);
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
}
// return super.onOptionsItemSelected(itemPosition);
return true;
}
};
getSupportActionBar().setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener);
}
提前致谢!
最佳答案
你确定你没有得到点击事件吗?您正在创建 Intent 但不对其执行任何操作。尝试这样的事情:
switch (itemPosition) {
case 1:
Intent i = new Intent();
i.setClass(getApplicationContext(), ZoekAndBoekActivity.class);
startActivity(i);
break;
...
}
或添加写入日志以确保:
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
Log.d("SomeTag", "Get click event at position: " + itemPosition);
switch (itemPosition) {
...
}
}
并在您单击项目时在 logcat 输出中查看带有“SomeTag”的消息。
关于Android:Sherlock 操作栏下拉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10735176/