2016-04-06 14 views
-1
final Spinner s1= (Spinner) findViewById(R.id.Spinner1); 
    final Spinner s2= (Spinner) findViewById(R.id.Spinner2); 
    final ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.Manu_array, R.layout.textview); 

    s1.setAdapter(adapter); 
    s1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      int arrayId = 0; 
      switch (position) {//get array id according to selected position 
       case 0: 
        arrayId = R.array.Manu_1xsd_array; 
        break; 
       case 1: 
        arrayId = R.array.Manu_2xrsd; 
        break; 
       case 2: 
        arrayId = R.array.Manu_3x4rsd.array; 
        break; 
      } 
      ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, arrayId, R.layout.textview); 
      s2.setAdapter(adapter); 
     } 

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

     } 
    }); 
    s2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      String msg = s1.getSelectedItem().toString() + s2.getAdapter().getItem(position).toString(); 
      Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show(); 
     } 

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

     } 
    }); 

マイボタンのコードがある第一スピナの選択に基づいて意図を変更するボタンを追加したいです私はすべてを取るボタンを押して、関連するクラスにあるわずかに異なるパラメータでロードします。スピンナーの選択に基づいてインテントを変更する方法を理解することはできません。フィンの例はありません。は、次のように

+0

プログラムでインテントフィルタを変更したいですか?もしそうなら、あなたはそれをすることはできません。 –

答えて

0

あなたができることはスピナーの価値を読んで、それを使って正しい意図を立てることです。

button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent intent; 
      switch (spinner.getSelectedItem()) { 
       case "Manu1": 
        intent = new Intent(getApplicationContext(), Manu_1xsd.class); 
        break; 
       case "Manu2": 
       default: 
        intent = new Intent(getApplicationContext(), Manu_2xsd.class); 
        break; 
      } 

      startActivity(intent); 
     } 
    }); 

あなたは文字列のswitch文を使用することはできませんのJavaの古いバージョンを使用している場合は、代わりにAdapterView.getSelectedItemId()を使用することができます。

注 - 私は実際にこのコードを実行していませんが、むしろ書きました。

+0

ありがとう、私はそれを "Manu1"定数の表現が必要な場合に動作させていないので、私はそれを微調整する必要があるように見える。 – MadWayne

+0

コードベースの配列から直接入力するので、コンパイル時にすべての文字列値を持つ必要があります。 「Manu1」は単なる例でした。それをあなたの文字列に置き換える必要があります。 – vanguard

+0

まだ前と同じ問題を抱えているので、私は遊びと読書をして帰ります。私は明らかに何かを理解していません。 – MadWayne