2016-04-03 2 views
2

Я новичок в android и задавался вопросом, как вы можете иметь 4 прядильника на странице, но в зависимости от ценности друг друга. Я пытаюсь сделать так, чтобы, когда вы выбираете значение первого, например, значения второго счетчика могут меняться, но тогда мне нужен третий счетчик, чтобы он зависел от значения второго счетчика и того же с 4-м счетчиком в зависимости от значения 3-го счетчика (потому что у меня так много возможностей). Я правильно настроил макет, я просто не могу получить код в моем основном классе, чтобы работать правильно.Как сделать 4 прядильщика зависимыми друг от друга значение

У меня есть что-то подобное я нашел в Интернете, который описывает, как сделать это с 2 блесны, но мне нужно, чтобы иметь 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

Stack сниппеты только для 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; 
    } 
} 
Смежные вопросы