Autore Topic: ListView con SimpleAdapter  (Letto 394 volte)

Offline Mr.Donut

  • Utente junior
  • **
  • Post: 67
  • Respect: +4
    • Mostra profilo
  • Dispositivo Android:
    Nexus One, Lg Optimus Chat
  • Sistema operativo:
    Ubuntu 11.04
ListView con SimpleAdapter
« il: 10 Febbraio 2012, 23:43:49 CET »
0
Seguendo il tutorial di Qlimax [medio] ListView con layout personalizzato tramite un SimpleAdapter - Android Developers Italia ho potuto creare facilmente una listview personalizzata. Ora però vorrei chiedervi se sia possibile impostare che ad ogni click di una riga della mia listView mi venga stampato a video un toast contenente un parametro della classe "MyClass" che ho usato per personalizzare la mia listview.
Googlando sono arrivato a questo risultato però mi dà degli errori incredibili quando lancio l'applicazione....

Codice (Java): [Seleziona]
                // instructions to set the click-able option to our surveys
                ListView lv = (ListView) findViewById(R.id.myListView);
                lv.setTextFilterEnabled(true);

                lv.setOnItemClickListener(new OnItemClickListener() {
                        public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
                                // When clicked, show a toast with the TextView text
                                MyClass p = (MyClass) parent.getItemAtPosition(position);
                                Toast.makeText(view.getContext(),
                                                "Dopo il Click " + p.getMyClass_name(),
                                                Toast.LENGTH_SHORT).show();
                        }
                });

Credo che il problema risieda qua

Codice (Java): [Seleziona]
MyClass p = (MyClass) parent.getItemAtPosition(position);
                                Toast.makeText(view.getContext(),
                                                "Dopo il Click " + p.getMyClass_name(),
                                                Toast.LENGTH_SHORT).show();

Perché non credo che sia giusto il metodo che ho usato per ottenere le informazioni sui miei oggetti...
Devo forse ottenerlo dal mio "ArrayList<HashMap<String, Object>> data"?
Consigli?  :-)

Grazie

Codice: [Seleziona]
02-10 22:33:37.403: E/AndroidRuntime(371): FATAL EXCEPTION: main
02-10 22:33:37.403: E/AndroidRuntime(371): java.lang.ClassCastException: java.util.HashMap
02-10 22:33:37.403: E/AndroidRuntime(371):         at com.android.MyActivity$1.onItemClick(MyActivity.java:104)
02-10 22:33:37.403: E/AndroidRuntime(371):         at android.widget.AdapterView.performItemClick(AdapterView.java:284)
02-10 22:33:37.403: E/AndroidRuntime(371):         at android.widget.ListView.performItemClick(ListView.java:3513)
02-10 22:33:37.403: E/AndroidRuntime(371):         at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812)
02-10 22:33:37.403: E/AndroidRuntime(371):         at android.os.Handler.handleCallback(Handler.java:587)
02-10 22:33:37.403: E/AndroidRuntime(371):         at android.os.Handler.dispatchMessage(Handler.java:92)
02-10 22:33:37.403: E/AndroidRuntime(371):         at android.os.Looper.loop(Looper.java:123)
02-10 22:33:37.403: E/AndroidRuntime(371):         at android.app.ActivityThread.main(ActivityThread.java:3683)
02-10 22:33:37.403: E/AndroidRuntime(371):         at java.lang.reflect.Method.invokeNative(Native Method)
02-10 22:33:37.403: E/AndroidRuntime(371):         at java.lang.reflect.Method.invoke(Method.java:507)
02-10 22:33:37.403: E/AndroidRuntime(371):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-10 22:33:37.403: E/AndroidRuntime(371):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-10 22:33:37.403: E/AndroidRuntime(371):         at dalvik.system.NativeStart.main(Native Method)
02-10 22:38:37.483: I/Process(371): Sending signal. PID: 371 SIG: 9