2012-12-17 5 views
5

Mam 2 pokrętła.dwa pokrętła w jednej czynności

to moja aktywność

package com.example.belajarcombobox; 

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.TextView; 
import android.widget.Toast; 


public class CreateComboBox extends Activity implements AdapterView.OnItemSelectedListener { 

    TextView selection; 
    TextView selection2; 
    String[] countries = {"Amerika","Argentina","Brazil"}; 

    String[] city = {"London","Paris","Buenos Aires"}; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     selection = (TextView) findViewById(R.id.selection); 
     Spinner spin = (Spinner) findViewById(R.id.spinner); 
     ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, countries); 
     aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spin.setAdapter(aa); 
     spin.setOnItemSelectedListener(this); 

     selection2 = (TextView) findViewById(R.id.selection2); 
     Spinner spin2 = (Spinner) findViewById(R.id.spinner2); 
     ArrayAdapter<String> bb = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, city); 
     bb.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spin.setAdapter(bb); 
     spin2.setOnItemSelectedListener(this); 
    } 

    public void onItemSelected(AdapterView<?> parent, View v, int position, long id){ 
     Spinner spin = (Spinner)parent; 
     Spinner spin2 = (Spinner)parent; 
     if(spin.getId() == R.id.spinner) 
     { 
      Toast.makeText(this, "Your choose :" + countries[position],Toast.LENGTH_SHORT).show();     
     } 
     if(spin2.getId() == R.id.spinner2) 
     { 
      Toast.makeText(this, "Your choose :" + city[position],Toast.LENGTH_SHORT).show();  
     } 

    } 

    public void onNothingSelected(AdapterView<?> parent){ 
     Toast.makeText(this, "Choose Countries :", Toast.LENGTH_SHORT).show(); 
    } 
} 

kiedy uruchomić tę działalność, pierwsza wartość spinner jest miasto i druga wartość spinner jest pusty.

Jak uruchomić 2 obrotówki w tej samej czynności? Pierwszą wartością przędzarki są kraje, a drugą wartością przędzarki jest miasto.

BR

Alex

Odpowiedz

3

użycie

spin2.setAdapter(bb); 

zamiast

spin.setAdapter(bb); 

obecnie konfigurowania adaptera dla drugiego pokrętła

+1

dzięki. Zapomniałem zmienić spin w drugim adapterze spinów. –

+0

@Alexbelek: najbardziej mile widziani znajomi :) –

+0

Mam jeszcze jedno pytanie. Mam stronę wprowadzania formularza. przykład SaveActivity.java. w tym działaniu mam przycisk EditText, przycisk. jak zaimportować ten CreateComboBox do SaveActivity.java. więc mam spinner w SaveActivity.java? @ ρяσρєя K –

0

Ty Sho uld use make spin.setAdapter (bb); do spin2.setAdapter (bb);

1
bb.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spin2.setAdapter(bb); (should be second spinner..) 
^^^^^ 
spin2.setOnItemSelectedListener(this); 
1

Nie dodawaj wdrożenie do klasy Aktywny

Utwórz dwa wewnętrzne klasy, które każdy uchwyt jedną z błystki

public class CreateComboBox extends Activity implements AdapterView.OnItemSelectedListener 
{ 
    TextView selection; 
    TextView selection2; 
    String[] countries = {"Amerika","Argentina","Brazil"}; 

    String[] city = {"London","Paris","Buenos Aires"}; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     selection = (TextView) findViewById(R.id.selection); 
     Spinner spin = (Spinner) findViewById(R.id.spinner); 
     ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, countries); 
     aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spin.setAdapter(aa); 
     spin.setOnItemSelectedListener(new CountriesSpinnerClass()); 

     selection2 = (TextView) findViewById(R.id.selection2); 
     Spinner spin2 = (Spinner) findViewById(R.id.spinner2); 
     ArrayAdapter<String> bb = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, city); 
     bb.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spin.setAdapter(bb); 
     spin2.setOnItemSelectedListener(new CitiesSpinnerClass()); 
    } 

    class CountriesSpinnerClass implements AdapterView.OnItemSelectedListener 
    { 
     void onItemSelected(AdapterView<?> parent, View v, int position, long id) 
     { 
      Toast.makeText(v.getContext(), "Your choose :" + countries[position],Toast.LENGTH_SHORT).show();  
     } 
    } 

    class CitiesSpinnerClass implements AdapterView.OnItemSelectedListener 
    { 
     void onItemSelected(AdapterView<?> parent, View v, int position, long id) 
     { 
      Toast.makeText(v.getContext(), "Your choose :" + city[position],Toast.LENGTH_SHORT).show();   
     } 
    } 
} 
+0

ta odpowiedź pomogła mi. Mam dwie różne przędzarki z dwiema różnymi wartościami. pokazywałbym tylko jedną wartość dla obu spinnerów. ale teraz rozwiązany. Dziękuję. –