Autore Topic: Listview con spinner ed edittext  (Letto 364 volte)

Offline Vincenzoz

  • Utente junior
  • **
  • Post: 122
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    Vincenzo Cimino
  • Sistema operativo:
    Windows 7
Listview con spinner ed edittext
« il: 07 Agosto 2014, 10:06:48 CEST »
0
Salve io avrei bisogno di creare una listview in cui ogni item, dovrà avere uno spinner e un edittext, allora ho creato questo layout:

row:
Codice (XML): [Seleziona]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/row"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@android:color/transparent"
   android:orientation="horizontal"
   android:layout_weight="1" >

<Spinner
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_weight="1" >

</Spinner>

<EditText
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_weight="1" >

</EditText>
</LinearLayout>
   

E poi nell'activity:

Codice (Java): [Seleziona]
listIng = (ListView) findViewById(R.id.listView1);
               
            if (savedInstanceState != null && savedInstanceState.containsKey("ingList"))
                ingList= (ArrayList) savedInstanceState.getSerializable("ingList");
            else{
                ingList= new ArrayList<String>();
                ingList.add("uno");
                ingList.add("due");
                ingList.add("tre");
            }
       
            final ArrayList<String> Listring = new ArrayList<String>();
                Listring.addAll(ingList);
               
                // Create the new list adapter
                listAdapter = new ArrayAdapter<String>(this, R.layout.row, Listring);
                listIng.setAdapter(listAdapter);

Quindi creo la listview, gli aggiungo il dovuto, e poi gli setto l'adapter, ma l'app crasha all'avvio dando errore al settaggio dell'adapter alla listview, di seguito i logcat:
Come posso fare in modo di settare soltanto gli spinner con l'array list?  Grazie mille in anticipo  :D

08-07 09:47:39.320: E/AndroidRuntime(6974): FATAL EXCEPTION: main
08-07 09:47:39.320: E/AndroidRuntime(6974): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:347)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.AbsListView.obtainView(AbsListView.java:1592)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.ListView.makeAndAddView(ListView.java:1782)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.ListView.fillDown(ListView.java:705)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.ListView.fillFromTop(ListView.java:762)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.ListView.layoutChildren(ListView.java:1633)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.AbsListView.onLayout(AbsListView.java:1422)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.view.View.layout(View.java:7175)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1243)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1049)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.view.View.layout(View.java:7175)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.view.View.layout(View.java:7175)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1243)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1049)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.view.View.layout(View.java:7175)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.view.View.layout(View.java:7175)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.view.View.layout(View.java:7175)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.view.ViewRoot.performTraversals(ViewRoot.java:1146)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1865)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.os.Handler.dispatchMessage(Handler.java:99)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.os.Looper.loop(Looper.java:130)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.app.ActivityThread.main(ActivityThread.java:3687)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at java.lang.reflect.Method.invokeNative(Native Method)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at java.lang.reflect.Method.invoke(Method.java:507)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
08-07 09:47:39.320: E/AndroidRuntime(6974):    at dalvik.system.NativeStart.main(Native Method)
08-07 09:47:39.320: E/AndroidRuntime(6974): Caused by: java.lang.ClassCastException: android.widget.LinearLayout
08-07 09:47:39.320: E/AndroidRuntime(6974):    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:340)
08-07 09:47:39.320: E/AndroidRuntime(6974):    ... 34 more
« Ultima modifica: 07 Agosto 2014, 10:12:29 CEST da Vincenzoz »
Vincenzo Cimino @ Google Play Store


iClaude

  • Visitatore
Re:Listview con spinner ed edittext
« Risposta #1 il: 07 Agosto 2014, 10:20:25 CEST »
0
Nel creare l'ArrayAdapter hai passato l'id del LinearLayout anziche' "The resource ID for a layout file containing a TextView to use when instantiating views"...

Offline Vincenzoz

  • Utente junior
  • **
  • Post: 122
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    Vincenzo Cimino
  • Sistema operativo:
    Windows 7
Re:Listview con spinner ed edittext
« Risposta #2 il: 07 Agosto 2014, 10:31:15 CEST »
0
Si infatti, è completamente sbagliato quel pezzo di codice, comunque ho risolto leggendo questa domanda:

Android Listview with spinner and a checkbox - Stack Overflow

Grazie mille e scusate per il disturbo  :D
Vincenzo Cimino @ Google Play Store