2016-08-05 2 views
0

내가 가지고있는 것은 내가 스피너를 통해 언어를 선택하는 설정 활동입니다. 예를 들어 러시아어로 변경하면 언어가 변경되지만 설정 메뉴를 다시 열면 선택한 항목이 현재 항목 (영어)이 아닌 현재 항목 (러시아어)이됩니다.새로 고침 후 이전에 선택한 항목을 회 전자 표시하는 방법은 무엇입니까?

이것은

Resources res = getResources(); 
language = res.getStringArray(R.array.languages_arrays); 
Spinner spinner = (Spinner) findViewById(R.id.toolbar_spinner); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
      this, R.layout.spinner_item_dropdown, 
      language); 

spinner.setAdapter(adapter); 

가 내가 선택한 언어를 표시하기 위해 회 전자에 변경해야 내 회입니까? 이를 위해

+0

는 플래그 데이터를 유지 또는 sharedpreference에 데이터를 저장. – prakash

+0

@prakash 어떻게해야할지 모르겠습니다. 나는 무언가를 시도했지만 실제로 작동하지 않았다. –

+0

당신이 선택한 언어를 어디에도 저장 했습니까? – Piyush

답변

0

스피너의 이전 선택한 항목을 설정하려면 선택한 항목을 저장 한 다음 선택 항목을 설정해야합니다. 예를 들어 이전에 선택한 항목을 가져 와서 배열에서 항목의 위치를 ​​가져오고 싶습니다 어댑터

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
String language = preferences.getString("language", ""); 
     if(!language.equalsIgnoreCase("")) 
     { 
      int spinnerPosition = arrayAdapter.getPosition(language); 
      spinner.setSelection(spinnerPosition); 

     } 

아래로 데이터를 저장할 수 있습니다 :

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
     { 

SharedPreferences.Editor editor = preferences.edit(); 
editor.putString("language",spinner.getSelectedItem().toString();); 
editor.apply(); 



     } 


     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    }); 
+0

정확히 내가 필요한 것. 고맙습니다. –

0

유는 프로그래밍 방식

for (int i=0 ;i<languages.length;i++) 
       { 
        if(languages[i] = "RUSSIAN")//change it according to ur prrefence 
        spinner.setSelection(i); 
       } 
+0

답변 해 주셔서 감사합니다.하지만 해결되지 않았습니다. –

+0

메신저 정확히 무엇을하고 싶지 않다. – Anil

0

앱 어딘가에 이전에 선택한 값을 저장해야 스피너 값을 설정해야합니다. 설정을 다시 열면 해당 값을 확인하고 배열의 위치를 ​​찾습니다. 위치를 찾으면 스피너 선택을 아래와 같이 해당 위치로 설정하십시오.

spinner.setSelection (position_of_selected_item);

관련 문제