2016-10-23 14 views
0

最初のアクティビティでスピナーとボタンを持つこのアプリを構築していますが、スピナー値に基づいて他のアクティビティがあります。しかし問題は今私がボタンをクリックしても何も起こらず、何が間違っているのだろうか?これはあなたのOnClickListenerスピナー値に基づいて新しいアクティビティを起動する方法

public class ow extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_ow); 
     Button button1=(Button) findViewById(R.id.tac); 

     Spinner spin = (Spinner) findViewById(R.id.spinner); 
     final String text = spin.getSelectedItem().toString(); 
     button1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (text.equals("GTB")) { 
        Intent intent = new Intent(ow.this, gtb.class); 
        startActivity(intent); 
       }else if(text.equals("ZENITH")){ 
        Intent intent=new Intent(v.getContext(),z.class); 
        startActivity(intent); 
       } 
      } 

     }); 

    } 
} 

答えて

1

あなたが好きボタンクリックリスナー

final String text = spin.getSelectedItem().toString(); 

に次の行を記述する必要があり、この

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_ow); 
     Button button1=(Button) findViewById(R.id.tac); 

     final Spinner spin = (Spinner) findViewById(R.id.spinner); 
     button1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = spin.getSelectedItem().toString(); 

       if (text.equals("GTB")) { 
        Intent intent = new Intent(ow.this, gtb.class); 
        startActivity(intent); 
       }else if(text.equals("ZENITH")){ 
        Intent intent=new Intent(v.getContext(),z.class); 
        startActivity(intent); 
       } 
      } 

     }); 

    }} 
+0

は、私は本当に私の –

+0

のように働いたのtoString(。 ); 'イベントリスナーに移動しました。 –

+0

'文字列のテキスト= spin.getSelectedItem()で間違っていたものを、私のコードとあなたの間で異なっを見つけるカント魅力 –

0

Anonymousタイプである私のコードです。文字列の値は、デフォルト値のonCreate(おそらくnull)になります。クラスメンバーとしてspinnerを使用し、onClickメソッド内の選択項目値にアクセスします。

0

試してみてください。

button1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String text = spin.getSelectedItem().toString(); 

       if (text.equals("GTB")) { 
        Intent intent = new Intent(ow.this, gtb.class); 
        startActivity(intent); 
       }else if(text.equals("ZENITH")){ 
        Intent intent=new Intent(v.getContext(),z.class); 
        startActivity(intent); 
       } 
      } 

     }); 

はそれが作品を願っています。

0

Uは、スピナーイベントを作成する必要があります。例えば

spinner = (Spinner) findViewById(R.id.spinner); 
    adapter = ArrayAdapter.createFromResource(this, 
    R.array.opcoes,android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, 
     View view, int position, long l) { 

      String item = spinner.getSelectedItem().toString(); 

    Switch(item){ 
    case item1: 
    Intent yourAcitivity = new Intent(this, yourAcitivity.class); 
      startActivity(yourAcitivity); 
    case item2: 
    Intent yourSecondAcitivity = new Intent(this, yourSecondAcitivity.class); 
      startActivity(yourSecondAcitivity); 
    //Keep adding items. 

} 

     } 

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

     } 
    }); 
関連する問題