2016-04-03 5 views
2

私はアンドロイドには新しく、ページに4つのスピナーを持たせることができますが、お互いの価値に依存しています。最初の値を選択すると2番目のスピナーの値が変わるかもしれませんが、3番目のスピナーが2番目のスピナーの値に依存する必要があり、4番目のスピナーの値に依存するようにするようにしています3番目のスピナーの価値に応じて(私は非常に多くの可能性があるので)。私はレイアウトが正しく設定されている私はちょうど私のメインクラスのコードを正しく動作することができません。4つのスピナーをそれぞれの値に依存させる方法

は私が私が2つのスピナーでそれを行う方法を説明し、オンラインに似た何かを発見したが、私は誰もが私に4の例を示すことができたならば、それは4

package com.bar.example.androidspinnerexample; 
 
    
 
import java.util.ArrayList; 
 
import java.util.List; 
 
    
 
import android.app.Activity; 
 
import android.os.Bundle; 
 
import android.view.View; 
 
import android.widget.AdapterView; 
 
import android.widget.ArrayAdapter; 
 
import android.widget.Spinner; 
 
import android.widget.AdapterView.OnItemSelectedListener; 
 
import android.widget.Toast; 
 
    
 
public class SpinnerEx4Activity extends Activity implements 
 
OnItemSelectedListener{ 
 
Spinner s1,s2; 
 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     // TODO Auto-generated method stub 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.activity_spinner_ex4); 
 
     s1 = (Spinner)findViewById(R.id.spinner1); 
 
     s2 = (Spinner)findViewById(R.id.spinner2); 
 
     s1.setOnItemSelectedListener(this); 
 
    } 
 
    @Override 
 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
 
      long arg3) { 
 
     // TODO Auto-generated method stub 
 
     String sp1= String.valueOf(s1.getSelectedItem()); 
 
     Toast.makeText(this, sp1, Toast.LENGTH_SHORT).show(); 
 
     if(sp1.contentEquals("Income")) { 
 
      List<String> list = new ArrayList<String>(); 
 
      list.add("Salary"); 
 
      list.add("Sales"); 
 
      list.add("Others"); 
 
      ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
 
       android.R.layout.simple_spinner_item, list); 
 
      dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
 
      dataAdapter.notifyDataSetChanged(); 
 
      s2.setAdapter(dataAdapter); 
 
     } 
 
     if(sp1.contentEquals("Expense")) { 
 
      List<String> list = new ArrayList<String>(); 
 
      list.add("Conveyance"); 
 
      list.add("Breakfast"); 
 
      list.add("Purchase"); 
 
      ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this, 
 
       android.R.layout.simple_spinner_item, list); 
 
      dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
 
      dataAdapter2.notifyDataSetChanged(); 
 
      s2.setAdapter(dataAdapter2); 
 
     } 
 
      
 
    } 
 
    @Override 
 
    public void onNothingSelected(AdapterView<?> arg0) { 
 
     // TODO Auto-generated method stub 
 
      
 
    } 
 
}

を持っている必要がありますスピナーは素晴らしいだろう。前もって感謝します!まず、あなたの4つのスピナー初期化

+0

スタックスニペット用のみですHTML/CSS/JS – Laurel

答えて

2

:次に

s1 = (Spinner)findViewById(R.id.spinner1); 
s2 = (Spinner)findViewById(R.id.spinner2); 
s3 = (Spinner)findViewById(R.id.spinner3); 
s4 = (Spinner)findViewById(R.id.spinner4); 

は、リスナーを設定します。

s1.setOnItemSelectedListener(this); 
s2.setOnItemSelectedListener(this); 
s3.setOnItemSelectedListener(this); 
s4.setOnItemSelectedListener(this); 

そして、あなたのonItemSelected方法は、以下のようなものを実装:

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    int spinnerId = view.getId(); 
    switch(spinnerId) { 
     case R.id.spinner1: 
      // do spinner 1 stuff 
      // spinner 1 has changed update spinner 2 here 
      break; 
     case R.id.spinner2: 
      // do spinner 2 stuff 
      // spinner 2 has changed update spinner 3 here 
      break; 
     case R.id.spinner3: 
      // do spinner 3 stuff 
      // spinner 3 has changed update spinner 4 here 
      break; 
     case R.id.spinner4: 
      // do spinner 4 stuff 
      break; 
    } 
} 
関連する問題