2017-08-07 3 views
0

私はアンドロイドに新しいです、私はカスケードスピナーを実装しようとしています。最初のスピナーを選択すると、1番目のスピナーの選択に基づいて2番目のスピナーの選択が行われます。私はほとんど終わりましたが、2番目のスピナーでは値を選択できません。私が値を選択すると、それは消えています。これで私を助けてください。カスケードスピナーはWokringではありません

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 
import android.widget.Toast; 

public class DummyMain extends AppCompatActivity implements AdapterView.OnItemSelectedListener { 
    public Spinner spinner1, spinner2; 
    public String[] spinner1Values = {"A", "B"}, valuesForA = {"1", "2"}, valuesForB = {"3", "4", "5", "1"}; 
    public ArrayAdapter<String> adapterForSpinner1, adapterForSpinner2; 

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

     spinner1 = (Spinner) findViewById(R.id.spinner1); 
     spinner2 = (Spinner) findViewById(R.id.spinner2); 

     adapterForSpinner1 = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item, spinner1Values); 
     adapterForSpinner1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner1.setAdapter(adapterForSpinner1); 
     spinner1.setOnItemSelectedListener(this); 
    } 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int i, long l) { 
     Toast.makeText(this, "Result "+spinner1.getSelectedItem().toString(), Toast.LENGTH_SHORT).show(); 
     if (parent.getId() == R.id.spinner1) { 
      if (spinner1.getSelectedItem().toString().equals("A")) { 
       adapterForSpinner2 = new ArrayAdapter<String>(getApplicationContext(), 
         android.R.layout.simple_spinner_item,valuesForA); 
       adapterForSpinner2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       spinner2.setAdapter(adapterForSpinner2); 
       spinner2.setOnItemSelectedListener(this); 

      } else { 
       adapterForSpinner2 = new ArrayAdapter<String>(getApplicationContext(), 
         android.R.layout.simple_spinner_item,valuesForB); 
       adapterForSpinner2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       spinner2.setAdapter(adapterForSpinner2); 
       spinner2.setOnItemSelectedListener(this); 
      } 
     } 
    } 

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

    } 
} 

答えて

0

問題が見つかりました。私はそれを修正しました。

ArrayAdapter<String> adapterForSpinner2 = new ArrayAdapter<String>(getApplicationContext(), 
          android.R.layout.simple_spinner_item, valuesForB); 

私はこのgetApplicationConetxt()を変更しました。それは動作します:-)

ArrayAdapter<String> adapterForSpinner2 = new ArrayAdapter<String>(this, 
          android.R.layout.simple_spinner_item, valuesForB); 
関連する問題