我正在尝试设置默认情况下需要在微调器中选择的项的索引,但它始终默认为0(第1项)
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
SpinnerAdapter spinnerAdapter =
new ArrayAdapter<String>(activity, android.R.layout.simple_spinner_dropdown_item,
names);
int selectedIndex = actionBar.getSelectedNavigationIndex();
if (selectedIndex != targetIndex) {
actionBar.setSelectedNavigationItem(targetIndex);
}
Run Code Online (Sandbox Code Playgroud)
如果总是调用块,则在上面.即使在设置索引2之后,下次我检查它也会返回0.
编辑:我怀疑getSelectedNavigationIndex给出了actionBar项的索引而不是Spinner下拉项.如果是这种情况,什么方法设置下拉列表中所选项目的索引?
我正在为android 3+开发
在我的操作栏中,我有一个下拉列表(请参阅如何隐藏/取消隐藏Android 3上的操作栏列表?我想要的下拉列表).问题是我需要在用户选择某些内容时执行某个操作,但Android在绘制视图时调用onNavigationItemSelected()作为soons,因此实际上没有选择.
我如何检测用户是否真的按下了某些内容并且它不是来自android的假电话?
public class ListDittaListener implements OnNavigationListener{
private BaseActivity activity;
private ListDittaListener()
{
}
public ListDittaListener(BaseActivity activity)
{
this.activity = activity;
}
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId)
{
MyApp appState = ((MyApp)this.activity.getApplicationContext());
appState.setDittaSelezionata( (int) itemId);
SharedPreferences settings = this.activity.getSharedPreferences(MyApp.PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("ditta_id_selezionata", (int) itemId);
////////restart activity this.activity.recreate();
return false;
}
}
Run Code Online (Sandbox Code Playgroud)