相关疑难解决方法(0)

ActionBar Dropdown Spinner项默认为第一项

我正在尝试设置默认情况下需要在微调器中选择的项的索引,但它始终默认为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 android-3.0-honeycomb

17
推荐指数
1
解决办法
1万
查看次数

android动作栏onNavigationItemSelected

我正在为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)

android android-actionbar

12
推荐指数
1
解决办法
2万
查看次数