2016-10-13 18 views
0

私はスピナーで値を取って、ユーザーがOKボタンを押して、スピナーの値から新しいアクティビティーを開始します。文字列配列はまさにそのようなものです。 2つのスピナーの値を取得し、新しいアクティビティをスピナーに対して開始します。それ以外の場合スピナーで使用する

Spinner s, s1; 
    Button ok; 
    Object _globalString, _globalString2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_menu); 

     s = (Spinner) findViewById(R.id.spinner); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, array_spinner); 
     s.setAdapter(adapter); 

     s1 = (Spinner) findViewById(R.id.spinner01); 
     ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, array_spinner01); 
     s1.setAdapter(adapter1); 
// 
// s2=(Spinner)findViewById(R.id.spinner02); 
// ArrayAdapter<String> adapter2=new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_spinner_dropdown_item,array_spinner02); 
// s2.setAdapter(adapter2); 

     ok = (Button) findViewById(R.id.btn_ok); 
     ok.setOnClickListener(this); 

     s.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       _globalString = parent.getItemAtPosition(position); 
      } 

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

      } 
     }); 

     s1.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       _globalString2 = parent.getItemAtPosition(position); 
      } 

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

      } 
     }); 

    } 

    @Override 
    public void onClick(View v) { 
     if (v.getId() == R.id.btn_ok) { 
      if (_globalString.equals("Honda") || _globalString2.equals("Civic")) { 
       startActivity(new Intent(getApplicationContext(), Civic.class)); 
      } else if (_globalString.equals("Toyota") || _globalString2.equals("Gli")) { 
       startActivity(new Intent(getApplicationContext(), Toyota.class)); 
      } 

     } 
    } 
} 

ここではエラーが発生します。申し訳ありませんがアプリケーションが停止されました 私はこのコードに固執しました。

+0

あなたがマニフェストに活動を追加logs.Haveクラッシュを追加しますか? –

+0

クラッシュからスタックトレースを提供できますか?あなたを助けたい人を大いに援助します。 –

+0

スピナーにsetOnItemClickListenerを使用することはできません。 setOnItemSelectedListenerを変更します。 – sonnv1368

答えて

0

使用setOnItemSelectedListener代わりのsetOnItemClickListener

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 

    Spinner s, s1; 
    Button ok; 
    Object _globalString, _globalString2; 
    String[] array_spinner = {"Honda", "Toyota"}; 
    String[] array_spinner01 = {"Civic", "Gli"}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     s = (Spinner) findViewById(R.id.spinner); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, array_spinner); 
     s.setAdapter(adapter); 

     s1 = (Spinner) findViewById(R.id.spinner01); 
     ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, array_spinner01); 
     s1.setAdapter(adapter1); 
// 
// s2=(Spinner)findViewById(R.id.spinner02); 
// ArrayAdapter<String> adapter2=new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_spinner_dropdown_item,array_spinner02); 
// s2.setAdapter(adapter2); 

     ok = (Button) findViewById(R.id.btn_ok); 
     ok.setOnClickListener(this); 

     s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       _globalString = parent.getItemAtPosition(position); 

      } 

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

      } 
     }); 

     s1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       _globalString2 = parent.getItemAtPosition(position); 
      } 

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

      } 
     }); 

    } 

    @Override 
    public void onClick(View v) { 
     if (v.getId() == R.id.btn_ok) { 
      if (_globalString.equals("Honda") || _globalString2.equals("Civic")) { 
       startActivity(new Intent(getApplicationContext(), Civic.class)); 
      } else if (_globalString.equals("Toyota") || _globalString2.equals("Gli")) { 
       startActivity(new Intent(getApplicationContext(), Toyota.class)); 
      } 

     } 
    } 
} 
+0

私はこのコードを使用しましたが動作しません –

+0

あなたも宣言を修正する必要があります** Object _globalString、_globalString2; ** –

+0

は** equals **の代わりにequalsIgnoreCase **を使用するようにもしています –

関連する問題