1

アプリケーションの言語を変更する必要があります。このために、アプリケーションに必要なすべての言語を含むスピナーがあります。これが私がそれを使用する方法です:

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 内にあります (2 番目のタブを表します)。このタブ (2 番目のタブ) をクリックすると、アプリケーションはすぐに最初のタブ (クラス AccountActivity を含む) に移動します。これは、タブをクリックすると setOnItemSelectedListener が呼び出されることを意味します。なぜこれが起こっているのですか?これが私の SettingActivity.class です: http://pastebin.com/vLfZe61b

どんなアイデアでも大歓迎です。前もって感謝します。

4

0 に答える 0