Jestem bardzo nowy dla Androida. Chcę użyć dwóch spinnerów w mojej aplikacji, jedna pokazuje listę krajów, kiedy wybrany jest inny kraj, druga powinna pokazać listę miast tego kraju. po wybraniu miasta wykonywane są pewne czynności. plz pomóż mi z przykładowym kodem. Dzięki w oczekiwaniujak używać spinner
Odpowiedz
Sprawdź następujące przykłady:
https://developer.android.com/guide/tutorials/views/hello-spinner.html
http://www.designerandroid.com/?cat=4
Tutaj jest coś, co możemy wykorzystać, aby dodać opcje spinner2 wrt do Spinner 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;
}
}
}
Jeśli znaleźć to przydatne, a następnie oddać głos, aby inni mogli łatwo znaleźć dobrą odpowiedź.
Dla każdego kraju należy utworzyć dla niego klasę, aby po prostu dodać Stan, Miasto & Obszar. Tak, aby nie stała się siatką na pojedynczym miejscu na jednej stronie.
Baw się dobrze.
Pozdrawiam,
Haps.
Oto przykładowy kod, który przedstawia wykorzystanie turbinki i działania wykonywane, gdy pozycja pokrętła wybrano
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);
}
}
Aby dodać listę wartości do wirówki, następnie trzeba określić SpinnerAdapter w swojej działalności , która rozszerza kategorię adaptera. Adapter przejściówki pozwala na zdefiniowanie dwóch różnych widoków: jednego, który pokazuje dane w samym pokrętle, i który pokazuje dane z rozwijalnej listy po naciśnięciu spinnera. Możesz także pobrać & kompletny przykładowy projekt dla lepszego zrozumienia.
- 1. Jak wyskakować listę jak spinner bez spinner w Androidzie?
- 2. Jak dynamicznie aktualizować spinner?
- 3. Spinner: Jak zmniejszyć rozmiar spinnera
- 4. Jak ustawić wartość Spinner JavaFX?
- 5. Jak dostosować Spinner w Androidzie
- 6. Android spinner kolor dzielnik
- 7. Ionic 2 spinner api
- 8. Połącz Spinner i AutoCompleteTextView
- 9. Android poz prosty spinner
- 10. Styl android spinner
- 11. Zmień Spinner ikona rozwijana
- 12. Zmień Spinner DropDown szerokość
- 13. Android: dwa Spinner onItemSelected()
- 14. Dynamiczne spinner espresso testowanie
- 15. Zmiana koloru dzielnika Spinner
- 16. Jak wypełnić Spinner z tablicy ciągów
- 17. Jak dodać spinner do paska akcji?
- 18. Jak dynamicznie zapełnić Android spinner tekst + obraz
- 19. Jak zatrzymać spinner spin.js za pomocą jQuery
- 20. jak stworzyć edytowalny spinner w Androidzie?
- 21. Jak utworzyć spinner z nagłówkiem w nim?
- 22. SpinnerPreference? (Jak osadzić Spinner na ekranie Preferencji)
- 23. Spinner - jak ustawić obramowanie wokół listy rozwijanej?
- 24. Jak wypełnić Spinner z wartością int
- 25. Jak zrobić spinner z datą na Androidzie
- 26. Jak dodać podpowiedź do widżetu Spinner?
- 27. Android Spinner Rozmiar bardzo duży
- 28. Spinner - fokus na pierwszy element
- 29. Widget Spinner jQueryUI z nokautem
- 30. Android - skonfigurować Spinner użyć tablicę
Sprawdź blog [to] (http://stackoverflow.com/questions/1337424/android-spinner-get-selected-item-change-event), dzięki któremu dowiesz się czegoś miłego. Pracuję też nad tą samą koncepcją, tutaj przedstawię odpowiedź, gdy otrzymam kompletne rozwiązanie. Pozdrawiam, Haps. – Harpreet