2012-05-29 5 views
0

제 하나의 항목의 문자열개의 종속 스피너

가능한 배열 용 XML (<string-array>)하지만, 제 선택한 어떤 따른 문자열의 다른 항목 어레이를 제공한다 번째에 정의 된 초는 웹 서비스에서 AsyncTask (이 부분이 작동 중임)을 사용하여 가져옵니다. 내 onPostExecute(Void result)에서 나는이 있습니다

내 활동의 onCreate()
private class GetInfoTask extends AsyncTask<Void, Void, Void> { 

    private ProgressDialog dialog = new ProgressDialog(StateTabActivity.this); 

    //... 
    @Override 
    protected void onPostExecute(Void result) { 
     Log.d("StateTabActivity","onPostExecute"); 
     sectorsArray = getSectorsName(); // sectorsArray is an array of strings 
     roomsArray = getRoomsName(); // roomsArray is an array of strings 
     subcategorySpinnerAdapter = new ArrayAdapter<String>(StateTabActivity.this, R.layout.my_spinner,sectorsArray); 
     subcategorySpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     subCategorySpinner.setAdapter(subcategorySpinnerAdapter); 
     dialog.dismiss(); 
    } 
} 

내가 가진 :

Spinner categorySpinner = (Spinner) findViewById(R.id.statetab_category_spinner); 
    ArrayAdapter<String> categorySpinnerAdapter = new ArrayAdapter<String>(this, R.layout.my_spinner,getResources().getStringArray(R.array.array_category)); 
    categorySpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    categorySpinner.setAdapter(categorySpinnerAdapter); 

    subCategorySpinner = (Spinner) findViewById(R.id.statetab_subcategory_spinner); 

    categorySpinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
      Log.d("StateTabActivity","in onitemselected"); 
      switch (arg2) { 
      case 0: 
        //I want to set here the items of sectorsArray to be displayed on the second spinner (subCategorySpinner) 
       break; 
      case 1: 
        //I want to set here the items of roomsArray to be displayed on the second spinner (subCategorySpinner) 
       break; 

      default: 
       break; 
      } 

     } 

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

     } 

    }); 

그래서 내 질문은 : 내가있어서, 상기 제 2 회 전자에 대한 권리 배열을 바인딩하려면 어떻게해야합니까 처음에 무엇이 선택 되었습니까?

답변

0

이것은 선택한 주당 지구 목록을 얻는 코드입니다. DistricList 클래스에서

final Spinner state = (Spinner)_activity.findViewById(R.id.state); 
    final Spinner district= (Spinner) _activity.findViewById(R.id.district); 
    _activity.findViewById(R.id.name_of_city); 
    state.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){ 

     @Override 
     public void onItemSelected(AdapterView<?> adapter, View v, int i, long lng) { 



      if(i == 0){ 
       districtAdapter =new ArrayAdapter<CharSequence>(_activity ,    android.R.layout.simple_spinner_item, **DistrictList**.AndraPradesh); 
    //DistricList is another class.its code given below 
              districtAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
          district.setAdapter(districtAdapter); 
          if(_viewState == SAVED_VIEW){ 
                          district.setSelection(getArraySpinner(DistrictList.AndraPradesh,_initialValues.getAsString("District")),true); 
      } 
     } 

,

public class DistrictList { 
    public static final String[] AndraPradesh = new String[] {"Adilabad", 
     "Anantapur", 
     "Chittoor", 
     "East Godavari", 
     "Guntur", 
     "Hyderabad", 
     "Karimnagar", 
     "Khammam"}; 
} 



}