2011-07-18 32 views
1

我是android中的begginer。我正在開展一個項目。但是我很難做兩個相互關聯的紡紗工。其實這個國家和這個城市都是一個小圈子。第二個微調將顯示城市,而不是選擇的國家。相關的spinners Android

I'v使用「OnItemSelectedListener」,但「ArrayAdapter.createFromResource」不能在OnItemSelectedListener中使用。 我嘗試了很多其他方法,但仍然沒有工作。 有人可以幫我嗎?

(PS我已閱讀並嘗試有關此主題的其他職位,但它仍然無法正常工作) 這是代碼:

spinner.setOnItemSelectedListener(
      new OnItemSelectedListener() { 
       public void onItemSelected(
         AdapterView<?> parent, View view, int position, long id) { 


        int spinnerId = spinner.getSelectedItemPosition(); 
        if (spinnerId==0){ 
    adaptert = ArrayAdapter.createFromResource(
      this, R.array.tirana, android.R.layout.simple_spinner_item); 
    adaptert.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    } 
    else if (spinnerId==1) { 
     adaptert = ArrayAdapter.createFromResource(
       this, R.array.durres, android.R.layout.simple_spinner_item); 
     adaptert.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     } 

    spinnert.setAdapter(adaptert); 


       } 

       public void onNothingSelected(AdapterView<?> parent) { 

       } 
      }); 
+0

是createFromResource不會在裏面工作的原因OnItemSelectedListener,你不能訪問'this'?改爲使用YourActivityName.this。 – Marmoy

回答

1
public class AdapterViewImplementation extends Activity implements OnItemSelectedListener{ 

    Spinner sp1; // One Spinner 
    Spinner sp2; // Another Spinner 
    ArrayAdapter stateAdapter; // Adapter for state 
    ArrayAdapter cityAdapter; // Adapter for city 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     sp1 = (Spinner)findViewById(R.id.Spinner01); 
     sp2 = (Spinner)findViewById(R.id.Spinner02); 


     stateAdapter = ArrayAdapter.createFromResource(AdapterViewImplementation.this, 
       R.array.state, android.R.layout.simple_spinner_item); 
     stateAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     sp1.setAdapter(stateAdapter); 
     sp1.setOnItemSelectedListener(AdapterViewImplementation.this); 


     cityAdapter = ArrayAdapter.createFromResource(AdapterViewImplementation.this, 
       R.array.city, android.R.layout.simple_spinner_item); 
     cityAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     sp2.setAdapter(cityAdapter); 
     sp2.setOnItemSelectedListener(AdapterViewImplementation.this); 


    } 

    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     // TODO Auto-generated method stub 

     if(arg0 == sp1){ 

      sp2.setSelection(arg2); 

     }else{ 

      sp1.setSelection(arg2); 

     } 

    } 

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

    } 
}