Ich bin sehr neu in Android. Ich möchte 2 Spinner in meiner Anwendung verwenden, eine zeigt die Länderliste. Wenn ein Land ausgewählt wird, sollte der andere Spinner die Liste der Städte dieses Landes anzeigen. Wenn Stadt ausgewählt ist, wird eine Aktion ausgeführt. Bitte helfen Sie mir mit einem Beispielcode. Dank im Vorauswie spinner zu verwenden
Antwort
Überprüfen Sie die folgenden Beispiele:
https://developer.android.com/guide/tutorials/views/hello-spinner.html
http://www.designerandroid.com/?cat=4
Hier ist etwas, was wir Optionen hinzufügen können WRT spinner2 1.
public class Activity extends Activity implements View.OnClickListener
{
private Spinner spinner0, spinner1, spinner2, spinner3;
private Button submit, cancel;
private String country[], state[], city[], area[];
Australia aus = new Australia();
Object object;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinner0 = (Spinner)findViewById(R.id.spinnerCountry);
spinner1 = (Spinner)findViewById(R.id.spinnerQ1);
spinner2 = (Spinner)findViewById(R.id.spinnerQ2);
spinner3 = (Spinner)findViewById(R.id.spinnerQ3);
submit = (Button)findViewById(R.id.btnSubmit);
cancel = (Button)findViewById(R.id.btnCancel);
submit.setOnClickListener(this);
cancel.setOnClickListener(this);
country = new String[] {"Select Country", "Australia", "USA", "UK", "New Zealand", "EU", "Europe", "China", "Hong Kong",
"India", "Malaysia", "Canada", "International", "Asia", "Africa"};
ArrayAdapter<String> adapter0 = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, country);
adapter0.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner0.setAdapter(adapter0);
Log.i("AAA","spinner0");
spinner0.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View view1, int pos, long id)
{
Log.i("AAA","OnItemSelected");
int loc;
loc = pos;
switch (loc)
{
case 1:
state = aus.getState();
object = aus;
Log.i("AAA","ArrayAdapter1");
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, state);
adapter1.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner1.setAdapter(adapter1); Log.i("AAA","spinner1");
break;
default:
Log.i("AAA","default 0");
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg1)
{
Log.i("AAA","Nothing S0");
}
});
spinner1.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View view1, int pos, long id)
{
Log.i("AAA","OnItemSelected S1");
int loc = pos;
switch(loc)
{
case 1:
Log.i("AAA","Australia");
if(object.equals(aus))
{
city = aus.getType(loc);
}
else
{
break;
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, city);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner2.setAdapter(adapter); Log.i("AAA","spinner2");
break;
default:
Log.i("AAA", "default 1");
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
Log.i("AAA","Nothing S1");
}
});
spinner2.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int pos, long id)
{
int loc = pos;
switch (loc)
{
case 1:
if(object.equals(aus))
{
area = aus.getTitle(loc);
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(Activity.this, android.R.layout.simple_spinner_item, area);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner3.setAdapter(adapter); Log.i("","spinner3");
break;
default:
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
// TODO Auto-generated method stub
}
});
}// on-create
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.btnSubmit:
break;
case R.id.btnCancel:
finish();
break;
default:
break;
}
}
}
Wenn Sie spinner Finde das nützlich, dann gib es auf, damit andere leicht eine gute Antwort finden können.
Für jedes Land müssen Sie eine Klasse erstellen, um einfach den Status, Stadt & Bereich hinzuzufügen. Damit es nicht zu einem Netz auf einer einzelnen Seite wird.
Viel Spaß.
Grüße,
Haps.
Hier ist ein Beispielcode, der die Verwendung von Spinner und auszuführende Aktion zeigt, wenn Spinner Artikel
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;
public class MainActivity extends Activity {
Spinner spin;
String spin_val;
String[] gender = { "Male", "Female" };//array of strings used to populate the spinner
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//setting layout
spin = (Spinner) findViewById(R.id.spinner_id);//fetching view's id
//Register a callback to be invoked when an item in this AdapterView has been selected
spin.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long id) {
// TODO Auto-generated method stub
spin_val = gender[position];//saving the value selected
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
//setting array adaptors to spinners
//ArrayAdapter is a BaseAdapter that is backed by an array of arbitrary objects
ArrayAdapter<String> spin_adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, gender);
// setting adapteers to spinners
spin.setAdapter(spin_adapter);
}
}
ausgewählt ist, eine Liste von Werten zu dem Spinner hinzuzufügen Sie dann eine SpinnerAdapter in Ihrer Aktivität angeben müssen Dies erweitert Adapter-Klasse. Ein Spinner-Adapter ermöglicht zwei verschiedene Ansichten zu definieren: eine, die die Daten im Spinner selbst zeigt und eine, die die Daten in der Dropdown-Liste zeigt, wenn der Spinner gedrückt wird. Sie können auch herunterladen & beziehen das komplette spinner_demo Beispielprojekt zum besseren Verständnis.
- 1. Android Spinner Adapter Einstellung zu Spinner
- 2. Spinner - Wie konvertiert man aus getSelectedItem(). ToString() von einem Spinner, zurück zu einem Spinner?
- 3. Spinner: Wie Größe von Spinner reduzieren
- 4. OnItemSelectedListener zu Spinner hinzufügen
- 5. OnClickListener zu Spinner? ??
- 6. Wie Popup-Liste wie ein Spinner ohne Spinner in Android?
- 7. Wie programmgesteuert datePickerMode = "Spinner"?
- 8. Verwenden Objektarray-Liste als Spinner Adapter
- 9. Verwenden Sie Spinner Text für Einfügen
- 10. Android-Einstellung Etikett zu Spinner
- 11. Nexus 7 Spinner zu groß
- 12. Wie Spinner mit Winkelmesser umgehen, wenn Spinner durch Wrapper versteckt
- 13. Wie Spinner DropDown Android
- 14. Spinner zeigt wie Dialog
- 15. ändern, wie Spinner sieht
- 16. Wie kann ich einen Spinner mit einer Schaltfläche verwenden, um die App zu anderen Aktivitäten umleiten
- 17. android Spinner: center Text vertikal innerhalb Spinner
- 18. Wie zwei Spinner Positionen umkehren?
- 19. ändern Spinner Prompt auf Spinner Auswahl
- 20. Paper Spinner wie in Android
- 21. Aktualisiere Spinner von einem anderen Spinner dynamisch
- 22. Spinner Array mit Spinner Array Werte
- 23. iPhone/iPad Spinner zu halten Animation
- 24. hinzufügen Laden von Spinner zu iframeSizer
- 25. Android Spinner
- 26. Wie liest man von SQL-Spalte zu Spinner?
- 27. Wie ein Spinner von String-Array füllen zu
- 28. Wie mit Selen jQuery UI Spinner zu testen
- 29. Wie Spinner ausgewähltes Element zu bearbeiten Text auf editTextFocusChange- Android
- 30. Wie zeigen Sie Spinner, wenn RxJava beobachtbar zu lange dauert?
Check [this] (http://stackoverflow.com/questions/1337424/android-spinner-get-the-selected-item-change-event) Blog, es wird Sie etwas Schönes wissen lassen. Ich arbeite auch an demselben Konzept, ich werde die Antwort hier geben, wenn ich eine komplette Lösung bekomme. Grüße, Haps. – Harpreet