当显示活动时,将调用spinner上的setOnItemSelectedListener

时间:2013-03-12 09:46:06

标签: android spinner tabactivity

我需要更改应用程序的语言。为此,我有一个微调器,其中包含我的应用程序所需的所有语言。以下是我如何使用它:

private Spinner language;
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.my_spinner_textview, languages);
        adapter.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
language.setAdapter(adapter);
language.setSelection(Integer.valueOf(languageId) - 1);
language.setOnItemSelectedListener(new CustomOnItemSelectedListener());

其中CustomOnItemSelectedListener():

private class CustomOnItemSelectedListener implements OnItemSelectedListener {

        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
            Log.v(TAG, String.valueOf(language.getSelectedItemId() + 1));

             fsmApplication.setPreferredLanguageShortName(language.getSelectedItem());
             finish();
             Intent i4 = new Intent(SettingsActivity.this,
             AccountActivity.class);
             startActivity(i4);
        }

        public void onNothingSelected(AdapterView<?> arg0) {
        }

    }

问题很奇怪。此代码位于SettingsActivity.class中,它位于Tab的内部(它代表第二个选项卡)。当我单击此选项卡(第二个选项卡)时,应用程序立即进入第一个选项卡(其中包含AccountActivity类)。这意味着单击选项卡时会调用setOnItemSelectedListener。为什么会这样? 这是我的SettingActivity.class:http://pastebin.com/vLfZe61b

欢迎任何想法。提前谢谢。

0 个答案:

没有答案