2012-10-09 35 views
3

我有一个活动,其中有多个纺纱器(约8-9)。我使用的代码如下:OnItemSelectedListener多个纺纱器不能正常工作

Spinner sp1, sp2, sp3, sp4, sp5; 
sp1 = (Spinner) findViewById(R.id.spinner1); 
sp2 = (Spinner) findViewById(R.id.spinner2); 
sp3 = (Spinner) findViewById(R.id.spinner3); 
sp4 = (Spinner) findViewById(R.id.spinner4); 
sp5 = (Spinner) findViewById(R.id.spinner5); 

sp1.setOnItemSelectedListener(this); 
sp2.setOnItemSelectedListener(this); 
sp3.setOnItemSelectedListener(this); 
sp4.setOnItemSelectedListener(this); 
sp5.setOnItemSelectedListener(this); 

//Outside onCreate I'm using the following to handle the spinner Item Selected event. 

@override 
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
     long arg3) { 
    // TODO Auto-generated method stub 
    switch (arg0.getId()) { 
    case R.id.spinner1: 
     Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show(); 
     break; 
    case R.id.spinner2: 
     Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show();   
     break; 
    case R.id.spinner3: 
     Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show(); 
     break; 
    case R.id.spinner4: 
     Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show(); 
     break; 
    case R.id.spinner5: 
     Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show(); 
     break; 
    } 
} 

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

} 

但问题是,我没有在任何纺织家选择项目得到任何Toast。任何帮助,将不胜感激。提前致谢。

回答

2
package com.meta; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.Spinner; 
import android.widget.Toast; 

import com.meta.R; 

public class SpinnerActivity extends Activity{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Spinner sp1, sp2, sp3, sp4, sp5; 
     sp1 = (Spinner) findViewById(R.id.spinner1); 
     sp2 = (Spinner) findViewById(R.id.spinner2); 
     sp3 = (Spinner) findViewById(R.id.spinner3); 
     sp4 = (Spinner) findViewById(R.id.spinner4); 
     sp5 = (Spinner) findViewById(R.id.spinner5); 

     sp1.setOnItemSelectedListener(myListener); 
     sp2.setOnItemSelectedListener(myListener); 
     sp3.setOnItemSelectedListener(myListener); 
     sp4.setOnItemSelectedListener(myListener); 
     sp5.setOnItemSelectedListener(myListener); 



    } 

    OnItemSelectedListener myListener=new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      switch (arg2) { 
       case 1: 
        Toast.makeText(SpinnerActivity.this,"Spinner 1", Toast.LENGTH_LONG).show(); 
        break; 
       case 2: 
        Toast.makeText(SpinnerActivity.this, "Spinner 2", Toast.LENGTH_LONG).show();   
        break; 
       case 3: 
        Toast.makeText(SpinnerActivity.this, "Spinner 2", Toast.LENGTH_LONG).show(); 
        break; 
       case 4: 
        Toast.makeText(SpinnerActivity.this,"Spinner 2", Toast.LENGTH_LONG).show(); 
        break; 
       case 5: 
        Toast.makeText(SpinnerActivity.this, "Spinner 2", Toast.LENGTH_LONG).show(); 
        break; 
       } 

     } 

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

     } 
    }; 



} 
+0

即使这是不工作... –

+0

@Tony斯塔克:你使我的天..工作就像一个魅力...很多很多感谢你... :) – AndroidLearner

+0

@AndroidDeveloper什么如果纺纱厂的数量超过了数百个,并且您不知道它们的确切数量,那么请如何实施选择方法回复。 –

1
public void onItemSelected(AdapterView<?> parent, View view,int pos, long id) { 
     switch (parent.getId()) { 
     case R.id.your_spinner_1_id: 
      // do stuffs with you spinner 1 
      break; 
     case R.id.your_spinner_2_id: 
      // do stuffs with you spinner 2 
      break; 
     default: 
      break; 
     } 
}