2011-11-16 3 views
4

Im new to android. 내가여러 회 전자의 간단한 의문

  1. 은 ...

    내 질문에 간단한 대답을하시기 바랍니다 .. 2 회 ... 난 내 응용 프로그램에 깊은 전에 취소하는 몇 가지 의심이 이있는 응용 프로그램 구축에 노력했다 하나의 견해에서 2 개의 회 전자를 가질 수 있습니까?

  2. 두 가지 모두에 대해 setOnItemSelectedListener(this)을 추가 할 수 있습니까?
  3. 예인 경우 두 스피너 모두에서 어떤 옵션이 선택되었는지 어떻게 알 수 있습니까? 두 개의 스피너 모두에 spinner.getSelectedItemPosition();을 좋아하세요?

귀중한 답변을 기다리고 있습니다. 참고 자료도 상당 함

+0

나는 또한 질문이 있어요 : 그냥 노력에 해가 무엇입니까? 소규모 샘플 프로젝트 또는 소스 제어하에있는 프로젝트에서 결과에 만족하지 못할 경우를 대비하여 나중에 되돌릴 수 있습니다. –

답변

12

예, 여러 회 전자의 하나의 수신기로 관리 할 수 ​​있습니다 또는 당신이 각각 별도의 수신기를 가질 수있을 수 있습니다.

이 뭔가를 할 수있는 단일 리스너를 들어

,

리스너

spinner1.setOnItemSelectedListener(this); 
spinner2.setOnItemSelectedListener(this); 

그런 다음 당신은 회 전자의 관련 작업을 수행 얻을 onItemSelected을 사용할 수 있습니다 설정합니다.

@Override 
     public void onItemSelected(AdapterView<?> parent, View view, 
                 int position,long arg3) 
     { 
     int id = parent.getId(); 
     switch (id) 
     { 
       case R.id.spinner1: 
       // your stuff here 
       break; 
      case R.id.spinner2: 
       // your stuff here 
      break; 
     } 
+0

제 경우에는 작동하지 않습니다 .... :( – Noman

0

두 스피너의 참조가 다른 경우 (스피너 2 개를 사용하는 경우) 서로 다른 ID를 지정하면 고유하게 식별 할 수 있습니다. 예, 두 가지 모두에 클릭 수신기를 설정할 수 있습니다. 그들 중 개별적으로.

spinner.setOnItemSelectedListener(new OnItemSelectedListener() { ... }); 
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { ... }); 
0
  1. spinner1.getSelectedItemPosition()
  2. , spinner2.getSelectedItemPosition()
+0

나는 그렇게했다. 이제 나는 두 번째 스피너에서 값을 경고로 인쇄 할 수 있습니다. 하지만 먼저 해보려고하면 오류가 발생합니다. "응용 프로그램 인 MultiSpinner (프로세스 com.myApps)가 예기치 않게 중지되었습니다. 다시 시도하십시오 [닫기]" –

0

확인이 :

회 전자 spinner0, spinner1, spinner2; TextView textView0, textView1, textView2;

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    textView0 = (TextView) findViewById(R.id.text0); 
    spinner0 = (Spinner) findViewById(R.id.spinner0); 

    ArrayAdapter<String> adapter0 = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, text0); 
    adapter0.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner0.setAdapter(adapter0); 
    spinner0.setOnItemSelectedListener(onItemSelectedListener0); 

    textView1 = (TextView) findViewById(R.id.text1); 
    spinner1 = (Spinner) findViewById(R.id.spinner1); 
    ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, text1); 
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner1.setAdapter(adapter1); 
    spinner1.setSelection(0,false); //make sure only one listener is 

거짓 spinner1.setOnItemSelectedListener (onItemSelectedListener1)와 같은 다른 수신기를 설정하여에서 onCreate 방법 // 활성;

textView2 = (TextView) findViewById(R.id.text2); 
    spinner2 = (Spinner) findViewById(R.id.spinner2); 
    MySpinnerAdapter adapter2 = new MySpinnerAdapter(MainActivity.this, android.R.layout.simple_spinner_item, obj2); 
    //adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner2.setAdapter(adapter2); 
    spinner2.setSelection(0,false); 
    spinner2.setOnItemSelectedListener(onItemSelectedListener2); 

} 

OnItemSelectedListener onItemSelectedListener0 = new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
     //do your stuff spinner0 
    } 

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

OnItemSelectedListener onItemSelectedListener1 = new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
     //do your stuff spinner1 
    } 

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

}; 

OnItemSelectedListener onItemSelectedListener2 = new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
     //do your stuff spinner2 
    } 

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

}; 

}

+0

안녕하십니까. 많은 노력이 분명히이 답변에 들어갔습니다. 코드 일지라도 파악하기가 어려울 수도 있습니다. 몇 가지 문장으로 솔루션을 주석 처리하는 것이 일반적입니다.답을 수정하고 설명을 추가하십시오. – MikaS

관련 문제