我想在操作栏上创建一个带有两个选项的下拉菜单。我在下面的代码中尝试了,但是动作栏的第一项是自动选择的,它会启动新的活动。
我没有收到任何错误或异常,请检查我的代码中有什么问题 String [] actions = new String [] { “家”, “更新IMEI” };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_spinner_dropdown_item, actions);
/** Enabling dropdown list navigation for the action bar */
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
/** Defining Navigation listener */
ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
//Toast.makeText(getBaseContext(), "You selected : " + actions[itemPosition] , Toast.LENGTH_SHORT).show();
switch(itemPosition) {
case 0:
break;
case 1:
Intent i = new Intent(UserDetail.this, MainActivity.class);
startActivity(i);
break;
case 2:
Intent ii = new Intent(UserDetail.this, Update_imei.class);
startActivity(ii);
break;
default:
break;
}
return false;
}
};
/** Setting dropdown items and item navigation listener for the actionbar */
getActionBar().setListNavigationCallbacks(adapter, navigationListener);
}
}
答案 0 :(得分:0)
问题在于你正在检查位置变量。当您将监听器添加到菜单时,Android会检查位置为{0,1}且带有空ID的项目,以将方法加载到内存中。您可以通过使用商品ID而不是位置来检查此问题。
答案 1 :(得分:0)
希望对你有所帮助
String[] actions = new String[] {
"Select Option",
"Home",
"Update "
};
/** Enabling dropdown list navigation for the action bar */
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
/** Defining Navigation listener */
ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
//Toast.makeText(getBaseContext(), "You selected : " + actions[itemPosition] , Toast.LENGTH_SHORT).show();
switch(itemPosition) {
case 0:
break;
case 1:
Intent i = new Intent(UserDetail.this, MainActivity.class);
startActivity(i);
break;
case 2:
Intent ii = new Intent(UserDetail.this, Update.class);
startActivity(ii);
break;
default:
break;
}
return false;
}
};
/** Setting dropdown items and item navigation listener for the actionbar */
getActionBar().setListNavigationCallbacks(adapter, navigationListener);
}