Popolare il filatore direttamente nel layout xml

È ansible popolare le opzioni di un Spinner proprio nel layout xml? Questa pagina suggerisce che dovrei utilizzare un ArrayAdapter? Sembra scomodo non essere in grado di farlo.

  • Devo utilizzare GCM per la comunicazione in tempo reale tra i dispositivi?
  • Perché Android WebView rifiuta l'input dell'utente?
  • Classe AsyncTask esterna con ProgressDialog
  • Aggiunta di TextInputLayout lancia in modo dinamico l'exception
  • Android a Imansible istanzia l'applicazione java.lang.ClassNotFoundException:
  • Come impedire ActivityUnitTestCase di call Application.onCreate?
  • 3 Solutions collect form web for “Popolare il filatore direttamente nel layout xml”

    Non sono sicuro di questo, ma dargli un colpo.

    Nel tuo strings.xml definisci:

    <string-arrays name="arrays_name"> <item>Array Item One</item> <item>Array Item Two</item> <item>Array Item Three</item> </string-arrays> 

    Nel tuo layout:

     <Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true" android:entries="@arrays/arrays_name" /> 

    Ho sentito questo a volte non funziona sul progettista, ma compila bene.

    Definire questo file in String.xml e il nome dell'arrays è come si desidera, ad esempio Peso

     <string-arrays name="Weight"> <item>Kg</item> <item>Gram</item> <item>Tons</item> </string-arrays> 

    e questo codice in you layout.xml

     <Spinner android:id="@+id/fromspin" android:layout_width="fill_parent" android:layout_height="wrap_content" android:entries="@arrays/Weight" /> 

    In You java La function di file viene utilizzata nel frammento se u scrivere quel codice in attività quindi rimuove la function

     a = (Spinner) findViewById(R.id.fromspin); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this.getActivity(), R.arrays.weight, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); a.setAdapter(adapter); a.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { if (a.getSelectedItem().toString().trim().equals("Kilogram")) { if (!b.getText().toString().isEmpty()) { float value1 = Float.parseFloat(b.getText().toString()); float kg = value1; c.setText(Float.toString(kg)); float gram = value1 * 1000; d.setText(Float.toString(gram)); float carat = value1 * 5000; e.setText(Float.toString(carat)); float ton = value1 / 908; f.setText(Float.toString(ton)); } } public void onNothingSelected(AdapterView<?> parent) { // Another interface callback } }); // Inflate the layout for this fragment return v; } 

    Per quanto riguarda il primo commento: Se lo fai tu riceverai un errore (in Android Studio). Questo è quanto riguarda il fatto che sia fuori dello spazio dei nomi Android. Se non sai come risolvere questo errore, controlla l'esempio sotto. Spero che questo ti aiuti!

    Esempio -Prima:

     <string-arrays name="roomSize"> <item>Small(0-4)</item> <item>Medium(4-8)</item> <item>Large(9+)</item> </string-arrays> 

    Esempio – Dopo:

     <string-arrays android:name="roomSize"> <item>Small(0-4)</item> <item>Medium(4-8)</item> <item>Large(9+)</item> </string-arrays> 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.