2011-07-18 14 views
1

私はアンドロイドで始まっています。私はプロジェクトに取り組んでいます。しかし、私は、互いに関連する2つのスピナーを行うことは非常に困難です。実際には国のためのスピナーと街のためのスピナー。選択された国の代わりに、第2のスピナーが都市を表示します。関連するスピナーAndroid

"OnItemSelectedListener"を使用しましたが、 "ArrayAdapter.createFromResourc e"をOnItemSelectedListener内で使用することはできません。 私は他の多くの方法を試しましたが、まだそれらのどれも働いていません。 誰でも助けてくれますか? createFromResourceは内部動作しないという理由は

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

次のとおりです。

これはコードです (PS私が読んで、このトピックに関する他の記事を試みたが、それはまだ動作しませんしています) 'this'にアクセスできないOnItemSelectedListener?代わりに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 

    } 
} 
関連する問題