2016-09-22 3 views
-3

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

public class Menu extends Activity implements View.OnClickListener { 
    private String[] array_spinner = {"Select Here", "Honda", "Toyota", "Mitibushi"}; 
    private String[] array_spinner01 = {"Select Here", "Civic", "Gli", "Lancer"}; 
    // //private String[] array_spinner02={"1999","2000","2005"}; 
// Spinner s,s1,s2; 
// Button ok; 
//@Override 
// protected void onCreate(Bundle savedInstanceState) { 
//  super.onCreate(savedInstanceState); 
    Spinner s, s1; 
    Button ok; 
    Object _globalString; 
    Object _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)); 
      } 

     } 
    } 
} 

あり、これを行うには多くの方法がありますが、私はこれらの解決策に従うことをお勧めします私はstuckedと私はそれを

+0

s1.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { _globalString = parent.getItemAtPosition(position); } @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub } }); s.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { _globalString2 = parent.getItemAtPosition(position); } @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub } }); 

今、あなたはスピナー値に基づいて活動を切り替えることができます_globalStringをオブジェクトではなくStringにすると、スピナーデータがオブジェクトに保存されるため、 –

+0

になります。その間違った –

+0

はいその間違い! –

答えて

0

を見つけるカントので、このコードでは私のミスがどこにあるか教えてください:

まず:

public class Menu extends Activity implements View.OnClickListener { 

Spinner s1, s2; 
Button acceptbutton; 
String _globalString ; 
String _globalString2 ; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

super.onCreate(savedInstanceState); 
//Your code .. 

は、以下のようなあなたの活動の先頭に文字列を宣言することにより、グローバル文字列変数でスピナーの値を保存します

今、あなたはあなたのスピナー変更値毎回、その文字列にあなたの選択したフィールドの値を保存する必要があります:あなたは、なぜ

@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

_globalString = parent.getItemAtPosition(pos); このコードのposの使い方 –

+0

@harismahmood posは、オーバーライドメソッドonItemSelectedから取得した位置です。あなたは言及のように位置で置き換えることができます。私は私の答えを編集します –

+0

okありがとう私はその仕事かどうかをチェックします –