Aby dodać element w Spinner, możesz zrobić jedną rzecz, spróbować utworzyć adapter, a następnie dodać / usunąć elementy do adaptera, a następnie możesz łatwo powiązać ten adapter z kołpakiem za pomocą setAdapter()metody.
Dzięki za odpowiedź ur Mam rozwiązanie również teraz mam do czynienia z jednym problemem.
Chcę pobrać wybraną pozycję przędzarki, tj. Jej pozycję, jak dalej chcę przekazać ją do innej metody, zobacz, co zrobiłem ... dataspin.setOnItemSelectedListener (nowy myitemlistener ());
dataspin to mój obiekt Spinner
@Override public void onItemSelected (AdapterView <?> Nadrzędny, widok widoku, pozycja int, długi id) {// TODO Metoda generowana automatycznie stub String p = parent.getItemAtPosition (pozycja) .toString (); int pos = (int) parent.getItemIdAtPosition (pozycja); System.out.println ("pozycja przędzarki ..." + poz); setSearchView (pos); }
jeśli to zrobię, element spinner nie jest wyświetlany
Pierwszy TypeCast w pliku Java. Następnie użyj przędzarki Spinner; spinner = findViewById (R.id.spinner); spinner.setOnItemClickListener (new AdapterView.OnItemClickListener () {@Override public void onItemClick (AdapterView <?> element nadrzędny, widok widoku, pozycja int, długi identyfikator) {}});
ZIA ANSARI
5
Ten kod w zasadzie odczytuje obiekt tablicy JSON i konwertuje każdy wiersz na opcję w pokrętle, która jest przekazywana jako parametr:
publicArrayAdapter<String> getArrayAdapterFromArrayListForSpinner(ArrayList<JSONObject> aArrayList,String aField){ArrayAdapter<String> aArrayAdapter =newArrayAdapter<String>(context, android.R.layout.simple_spinner_item);
aArrayAdapter.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);//android.R.layout.simple_spinner_dropdown_itemtry{for(int i =0; i < aArrayList.size(); i++){
aArrayAdapter.add(aArrayList.get(i).getString(aField));}}catch(JSONException e){
e.printStackTrace();ShowMessage("Error while reading the JSON list");}return aArrayAdapter;}
Odpowiedzi:
Plik XML:
Plik Java:
Zobacz przykład przędzarki .
źródło
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
(wcześniej,s.setAdapter(adapter);
aby menu wyglądało lepiej.Znalazłem inną opcję: definicja przędzarki w pliku układu
Definicja pozycji w pliku array.xml:
Link do pełnego źródła kodu
źródło
Wypróbuj ten kod:
Możesz również dodać wartość elementu przędzarki za pomocą pliku xml tablicy String.
W mainActivity.java:
źródło
Aby dodać element w Spinner, możesz zrobić jedną rzecz, spróbować utworzyć adapter, a następnie dodać / usunąć elementy do adaptera, a następnie możesz łatwo powiązać ten adapter z kołpakiem za pomocą
setAdapter()
metody.Oto przykład:
źródło
W swoim układzie:
źródło
Ten kod w zasadzie odczytuje obiekt tablicy JSON i konwertuje każdy wiersz na opcję w pokrętle, która jest przekazywana jako parametr:
źródło
Dodaj pokrętło do układu XML, a następnie dodaj ten kod do pliku Java:
źródło
Dodaj ten kod po zaktualizowaniu listy
Przypuszczać:
Nazwa zmiennej ArrayAdapter <String> to dataAdapter , a nazwa zmiennej List to keys .
źródło
Aby dodać jeszcze jeden przedmiot do Spinnera , możesz:
źródło
Wystarczy wyczyścić adapter, dodać wszystkie elementy i powiadomić o zmianie, jak poniżej:
źródło
Łatwiejszym sposobem jest użycie biblioteki spinnerów materiałów: https://github.com/jaredrummler/MaterialSpinner
najpierw dodaj do swojego projektu:
i użyj w ten sposób:
i kod java, dzięki któremu możesz dodawać elementy w java tak łatwo:
źródło