2016-04-03 15 views
2

Ben android için yeni ve bir sayfada 4 spinners nasıl olabilir merak ediyorum, ama birbirlerinin değerine bağımlı. İlk ikincinin değerini seçtiğinizde, örneğin ikinci dönücünün değerlerinin değişebileceği şekilde yapmaya çalışıyorum ama sonra ikinci çeviricinin değerine ve 4. iplikçiyle aynı olmak üzere 3. iplikçiye ihtiyacım var. 3. çeviricinin değerine bağlı olarak (çünkü çok fazla olasılık var). Düzeni doğru şekilde ayarladığım için, ana sınıfımdaki kodu doğru şekilde çalıştıramam.Diğerlerinden bağımsız olarak 4 eğirme makinesi nasıl yapılır

ben 2 iplikçiler ile bunu nasıl açıklar çevrimiçi bulundu ama herkes bana 4 bir örneğini göstermek olsaydı ben 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 
 
      
 
    } 
 
}

olması gerekir benzer bir şey var harika olacak iğneler. Şimdiden teşekkürler!

+0

Yığın parçacıkları içindir HTML/CSS/JS – Laurel

cevap

2

İlk dört iplikçiler başlatmak:

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

Sonra dinleyicileri ayarlayın:

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

Ve aşağıda gibi bir şey sizin onItemSelected yöntemini uygulamak:

@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; 
    } 
} 
İlgili konular