2016-03-31 9 views
2

これは苦労しているので、私は持っているものを得ます。spiner2を1から読み込み、spinner2の値とトーストの選択を選択できる

スピナー1アレイ。

<!--for spinner 1--> 
<string-array name="Manu_array"> 
<item>Manu 1xsd</item> 
<item>Manu 2xrsd</item> 
<item>Manu 3x4rsd</item> 
</string-array> 

スピナー2アレイ。

<!--for spinner 2--> 

<string-array name="Manu 1xsd"> 
<item>a1</item> 
<item>a2</item> 
<item>a3</item> 
<item>a4</item> 
</string-array> 

<string-array name="Manu 2xrsd"> 
<item>bg 1</item> 
<item>bg 2</item> 
</string-array> 

<string-array name="Manu 3x4rsd"> 
<item>z1</item> 
<item>z2</item> 
<item>zd4</item> 
<item>xs5</item> 
<item>fg34</item> 
</string-array> 

だから、スピナー1は、私が選択することになる "マヌ3x4rsd" スピンナー2 "XS5は、" 私は+ "XS5"

スピナー1選択のための私のJavaコード "マヌーは3x4rsd" 乾杯でしょう:

final Spinner[] spinner1 = {(Spinner) findViewById(R.id.Spinner1)}; 

// Create an ArrayAdapter using the string array and a default spinner layout 
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
R.array.Manu_array, R.layout.textview); 

    spinner1[0].setAdapter(adapter); 
    // Specify the layout to use when the list of choices appears 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    // Apply the adapter to the spinner 
    spinner1[0].setAdapter(adapter); 

    spinner1[0].setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

    public void onItemSelected(AdapterView<?> arg0, View arg1, 
           int arg2, long arg3) { 

     int index = arg0.getSelectedItemPosition(); 
     // storing string resources into Array 
     Manu= getResources().getStringArray(R.array.Manu_array); 

     Toast.makeText(getBaseContext(), "You have selected : " + Manu[index], 
       Toast.LENGTH_SHORT).show(); 

    } 

    public void onNothingSelected(AdapterView<?> arg0) { 
     // do nothing 
    } 
}); 
をスピナー2選択のための

私のJavaコード

final Spinner Spinner2= (Spinner) findViewById(R.id.Spinner2); 
Spinner1[0].setOnItemSelectedListener(new adapterView.OnItemSelectedListener() { 

@Override 
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, 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> adapterL = ArrayAdapter.createFromResource(settings.this, arrayId, R.layout.textview); 
Spinner1.setAdapter(adapterL); 

String Spinner1 = Spinner1.getSelectedItem().toString(); 

Toast.makeText(getBaseContext(), "You have selected : " + Spinner1, 
Toast.LENGTH_SHORT).show(); 

       } 

       public void onNothingSelected(AdapterView<?> arg0) { 
      // do nothing 
     } 

私は人口の値を見ることができる一方で問題がありますスピナー2を開き、それらをスクロールして選択することができますが、私はそれらを選択してトーストを生成するためのコードはありません。スピナー内にリスナーを作成しようとしましたが、希望どおりに機能させるために何もできません。

私は完全に間違った方法で問題に取り組んでいると思います。

スピナー1とスピナー2の選択値をトーストすると、それらを組み合わせて文字列のリストから読み取ってコマンドを作成することができます。

スピナーを使用して、必要な値を選択するだけでスクロールするための大きなリストを表示するのではなく、視覚効果に使用したかったです。

答えて

1

次のコードは、最初のスピナーから選択した値に応じて2番目のスピナーを設定し、2番目のスピナーの項目が選択されたときにトーストを表示します。

 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

私は事を過度に複雑にしていましたが、作品はこれを設定に変更しなければなりませんでした。これは魅力的です。 – MadWayne

+0

もちろん、問題ありません! –

関連する問題