2011-09-21 5 views
0

내 응용 프로그램에서 나는 사용자가 그들 중 누구를 선택해야 60 항목을 포함하는 스피너를 사용하고 있습니다. 내 문제는 회 전자를 포함하는 활동을 다시 호출하면 사용자가 볼 수있는 것입니다 이전에 선택한 항목을 스피너의 기본값으로 사용합니다. spineer.setselection()을 사용하려고했지만 얻을 수 없습니다. 누군가 이것에 대해 이상적이라면 내 문제를 해결하기위한 힌트를주세요.안드로이드 회 전자 기본 값 문제

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ViewGroup viewgroup = (ViewGroup) findViewById(R.id.myprofilelinear); 
    ViewGroup.inflate(this, R.layout.spinner, 
      viewgroup); 

    LoadUI(); 
} 
public void LoadUI() 
{ 
    imgtoggle = (ImageView) findViewById(R.id.btntoggle); 
    imgtoggle.setOnClickListener(this); 
    String param=JsonDataProcessor.MYPROFILELIST.get(0).getIsTracking(); 
    if(param.equalsIgnoreCase("True")) 
    { 
     imgtoggle.setImageResource(R.drawable.on_button); 
    } 
    else 
    { 
     imgtoggle.setImageResource(R.drawable.off_button); 
    } 

    btnsave = (Button)findViewById(R.id.btnSavechanges); 
    btnsave.setOnClickListener(this); 

    String[] s = new String[60]; 
    int i; 
    for (i = 0; i < 60; i++) { 
     s[i] = Integer.toString(i+1); 
    } 

    spin = (Spinner) findViewById(R.id.TimeSpinner); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(TimeSpin.this, 
      android.R.layout.simple_spinner_item, s); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spin.setAdapter(adapter); 

} 
+0

활동을 다시 호출 할 때 회 전자 어댑터를 다시로드하십시오. –

+0

스피너를 초기화하는 코드를 게시 할 수 있습니까? – SBerg413

답변

1

당신은이에 대한 OnItemselectedListener 점화 및 회 전자

에서 선택한 값을 설정해야합니다

확인이 코드 :

boolean flag_default_country=false; 

    spin_country.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
      // TODO Auto-generated method stub 
       for (int i = 0; i < s.length; i++) { 
        if (flag_default_country == false) { 
         if (s[i].toString().equalsIgnoreCase("US")) { 
          spin_country.setSelection(i); 
          flag_default_country = true; 
         } 
        } 
       } 
      } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub 
     } 
    }); 

spin_country는 회 전자 개체

첫번째 false로 flag_default_country를 초기화하고, 일부 값에 저장된 사용자가 선택한 문자열 값을 확인하십시오. i 번째 위치의 Array 값이 사용자가 선택한 값과 같으면 Spinner에서 i 값을 설정합니다.

사용자가 선택한 값을 저장하려면 공유 환경 설정을 사용할 수 있습니다.

Shared Preference에 대한 링크를 확인하십시오.

어려움이 있으면 알려주세요.

8

사용

spin.setSelection(adapter.getPosition(previously_saved_value));

previously_saved_value는 공유 환경 설정을 사용하거나 정적 변수를 만들고 그 값이 이전에 선택한 무엇을 사용자 설정에 의해 얻을 수있다.