2012-12-17 7 views
5

Ich habe 2 Spinner.zwei Spinner in einer Aktivität

diese meine Tätigkeit

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(); 
    } 
} 

ist, wenn ich diese Tätigkeit ausführen, die erste ist spinner Wert Stadt und der zweite Spinner Wert ist leer.

Wie führe ich 2 Spinner in der gleichen Aktivität? Der erste Spinner-Wert lautet Länder und der zweite Spinner-Wert ist Stadt.

BR

Alex

Antwort

3

Verwendung

spin2.setAdapter(bb); 

statt

spin.setAdapter(bb); 

zur Zeit Sie setzen Adapter für die zweite Spinner

+1

dank einer der Spinnern behandeln. Ich habe vergessen, den Spin im zweiten Spin-Adapter zu ändern –

+0

@Alexbelek: herzlichste Freund :) –

+0

Ich habe wieder eine Frage. Ich habe eine Formular-Eingabeseite. Beispiel SaveActivity.java. In dieser Aktivität habe ich einen EditText, Button. wie man dieses CreateComboBox in SaveActivity.java importiert. Also, ich habe Spinner in SaveActivity.java? @ ρяσѕρєя K –

0

Sie sho Verwenden Sie make spin.setAdapter (bb); zu spin2.setAdapter (bb);

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

Sie die Implementierung Ihrer Aktivitätsklasse

Erstellen Sie zwei innere Klassen nicht hinzufügen, die jeweils

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

diese Antwort hat mir geholfen. Ich habe zwei verschiedene Spinner mit zwei verschiedenen Werten. Ich würde nur einen Wert für beide Spinner zeigen. aber jetzt gelöst. Danke. –

Verwandte Themen