2012-11-08 5 views
1

spinner1을 선택할 때 두 개의 스피너가 있습니다. 카테고리 예제 작업, 부동산 등이 표시되고 spinner2에는 spinner1의 특정 카테고리와 관련된 하위 카테고리가 있습니다 (예 : 사용자 선택 작업) spinner1에서 다음 spinner2는 핫 작업, 소프트웨어, 하드웨어 등의 작업 하위 카테고리 만 표시해야합니다. 스피너 1의 부동산에서 스피너 2의 경우 대여, 임대 등을 표시해야합니다. 어떻게해야합니까? 간단한 측면에서두 개의 스피너, spinner2는 spinner1에 종속

+0

[This tuts] (http://samir-mangroliya.blogspot.in/p/android-spinner-tutorial.html)를 확인하십시오. –

+0

정말 당신의 문제를 해결하는 데 도움이되는 대답. –

답변

2

, 당신은 Spinner2

의 설정 어댑터를 스피너 1 ItemSelectedListener 등록하고 선택된 값을 기준으로해야

코드 스 니펫 :

spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
       if(position==1) 
        adapterForSpinner2=new ArrayAdapter..... //Depends on your data 
       else if(position==2) 
        adapterForSpinner2=new ArrayAdapter.....//Depends on your data 

       //Setting up adapter based on selection 
       spinner2.setAdapter(adapterForSpinner2);   
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parentView) { 
       // your code here 
      } 

     }); 
+1

좋은 대답입니다. – Buffalo

+0

spinner2 = (회 전자) findViewById (R.id.spinner2); 오류 발생보기에서 ​​회 전자로 캐스팅 할 수 없음 – SRY

+0

질문을 편집하여 레이아웃 파일 코드를 추가하십시오. –

0
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ddServerName.setOnItemSelectedListener(this); 
    ddServerPath.setOnItemSelectedListener(this); 

}

@Override 
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 

    Toast.makeText(getApplicationContext(), "Item selected local "+adapterView.getItemAtPosition(i).toString(), 
      Toast.LENGTH_SHORT).show(); 
    //sincronizare dropdouwn list 
    if (view == ddServerName.getSelectedView()) ddServerPath.setSelection(i); 
    else ddServerName.setSelection(i); 
} 
+1

해결책을 설명하면 답이 더 쉬울 것입니다. 그냥 코드를 게시하면 생각만큼 도움이되지 않습니다. –

관련 문제