Sono molto nuovo ad Android. Voglio utilizzare 2 filatori nella mia applicazione, uno mostra la lista dei paesi, quando viene selezionato un paese l'altro spinner dovrebbe mostrare l'elenco delle città di quel paese. quando viene selezionata la città, viene eseguita un'azione. per favore aiutami con qualche codice di esempio. grazie in anticipocome usare lo spinner
risposta
Controlla i seguenti esempi:
https://developer.android.com/guide/tutorials/views/hello-spinner.html
http://www.designerandroid.com/?cat=4
Qui c'è qualcosa di quello che possiamo usare per aggiungere opzioni al spinner2 WRT a 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;
}
}
}
Se trovare questo utile, quindi dargli il voto, in modo che gli altri possano trovare facilmente una buona risposta.
Per ogni Paese, è necessario creare una classe per esso, per aggiungere solo Stato, Città & Area. In modo che non diventi una mesh in una singola pagina singola.
Buon divertimento.
Cordiali saluti,
Haps.
Ecco un esempio di codice che descrive l'utilizzo di filatore e azione eseguita quando l'articolo filatore è selezionato
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);
}
}
Per aggiungere un elenco di valori alla trottola, è quindi necessario specificare uno SpinnerAdapter nella vostra attività , che estende la classe Adapter. Un adattatore spinner consente di definire due diverse viste: una che mostra i dati nella casella stessa e quella che mostra i dati nell'elenco a discesa quando si preme lo spinner. È anche possibile scaricare & fare riferimento a il progetto di esempio spinner_demo completo per una migliore comprensione.
- 1. Come fermare lo spinner spin.js con jQuery
- 2. Android - configurare Spinner per usare array di
- 3. Perché lo spinner non gira/ruota?
- 4. Come usare lo sprof?
- 5. Spinner: come ridurre la dimensione dello spinner
- 6. Ionic Framework - $ ionicLoading: come visualizzare sia lo spinner che l'etichetta?
- 7. C'è un modo per usare setOnClickListener con uno Spinner Android?
- 8. Android Spinner non OnItemSelected chiamato con lo stesso articolo
- 9. Android: Layout spinner personalizzato
- 10. Swift come usare lo sfondo di NSTimer?
- 11. Come visualizzare un elenco popup come uno spinner senza spinner in Android?
- 12. Ionic 2 spinner api
- 13. come rilevare se il menu a discesa è mostrato sopra o sotto lo spinner in Android?
- 14. Richiesta spinner Android
- 15. Come modificare la posizione dello spinner aperto?
- 16. Come riempire Spinner con valore int
- 17. Refreshing a Spinner
- 18. Spinner Dropdown Arrow
- 19. Valori impostati spinner Android
- 20. Spinner malfunzionamenti sulla Lollipop
- 21. Change Spinner DropDown width
- 22. Android: due Spinner onItemSelected()
- 23. Come impostare lo Spinner predefinito in base al valore anziché alla posizione?
- 24. Come si mostra lo spinner se RxJava osservabile richiede troppo tempo?
- 25. Come può essere impostato un messaggio di errore per lo Spinner in Android?
- 26. test dinamico spinner espresso
- 27. Styling a Spinner, appcompat, materiale
- 28. Come ignorare onClick su Android Spinner?
- 29. Come creare uno spinner con intestazione?
- 30. Come aggiungere l'immagine per Spinner Android
Controlla [questo] (http://stackoverflow.com/questions/1337424/android-spinner-get-the-selected-item-change-event) blog, ti farà sapere qualcosa di carino. Sto anche lavorando sullo stesso concetto, metterò la risposta qui, quando avrò una soluzione completa. Saluti, Haps. – Harpreet