2011-11-16 21 views
4

Im新的android。我曾試圖建立擁有2飛旋...... 我有一些懷疑前深去我的程序清除應用..多個微調器的簡單疑惑

請作簡要回答我的問題......

  1. 是在一個視圖中可能有2個旋轉器?
  2. 我可以爲兩者添加setOnItemSelectedListener(this)嗎?
  3. 如果是的話,我怎麼能知道在兩個spinners上選擇了哪個選項?像兩個spinners上的spinner.getSelectedItemPosition();

等待你的寶貴回覆。參考資料也很明顯

+0

我也有一個問題:是什麼在只是想它的危害呢?無論是在小樣本項目還是在源代碼控制下的項目中,如果您對結果不滿意,可以稍後恢復。 – 2011-11-16 11:26:53

回答

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

如果兩個spinners的引用不同(如果你使用2個spinners),給它們不同的ID,你可以唯一標識它們,是的,你可以設置單擊監聽器他們個人。

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

我是這麼做的。我現在可以在第二個微調器中打印警報中的值。但是當我嘗試首先完成時,它顯示錯誤。 「 」應用程序MultiSpinner(process 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

歡迎來到SO。 ,可能很難掌握它是否只是代碼,通常用幾句話評論解決方案。請編輯你的答案並添加一些解釋。 – MikaS