1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

getItemAtPosition(position) - ClassCastException

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von joergo, 22.08.2011.

  1. joergo, 22.08.2011 #1
    joergo

    joergo Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    22.08.2011
    Hallo,

    ich habe einen Android Client für einen Webservice geschrieben. Dieser funktioniert soweit auch ganz gut. Ich lasse eine Reihe von (Hotel)-Objekten aus einer MySql Datenbank in einer List View ausgeben.

    Nun will ich das weitere Details in einem neuen Intent angezeigt wird. Allerdings bekomme ich bei der Auswahl eine ClassCast Exception, da ich meineListView.getItemAtPosition(position) und dieser ein Object zurückgibt und ich diesen nicht casten kann ?! Es handelt sich glaub ich um ein Java Problem, aber vielleicht kann mir ja einer helfen ?!

    PHP:
    meineListView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> a, View v, int position, long id) {

    Intent newActivity = new Intent(v.getContext(),detail.class);  

    Hotel selectedhotel = (Hotel) meineListView.getItemAtPosition(position);
                        // hier kommt der Fehler
                        
                    
                        
    newActivity.putExtra("Hotelname", selectedhotel.getName().toString());
                        
    startActivity(newActivity);  
     
  2. swordi, 22.08.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    du holst ein object aus deiner listview, das wird eine view sein und sicher kein Hotel

    du musst es aus dem adapter holen.

    meineListView.getAdapter().getItem(position)
     
    joergo bedankt sich.
  3. joergo, 22.08.2011 #3
    joergo

    joergo Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    22.08.2011
    Hallo,

    danke für die schnelle Antwort. Leider bekomme ich immer noch den selben Fehler. Ich hab den Code wie folgt geändert:

    PHP:
    Intent newActivity = new Intent(v.getContext(),detail.class); 
                        
                        
    Hotel selectedhotel =  (HotelmeineListView.getAdapter().getItem(position);
                        
                        
    newActivity.putExtra("Hotelname"selectedhotel.getName());
    startActivity(newActivity);  
    Sorry wenn ich irgendwelche Fehler mache, habe erst vor kurzem angefangen mit Android Programmierung :)
     
  4. swordi, 22.08.2011 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    1. Fehler: Kein LogCat output gepostet
    2. Fehler: Du willst Daten vom Adapter holen, zeigst aber deinen Adapter Code nicht her.

    Dann wirds natürlich schwer weitere Fehler zu finden.
     
  5. joergo, 22.08.2011 #5
    joergo

    joergo Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    22.08.2011
    LogCat:

    PHP:
    08-22 15:20:03.044DEBUG/SntpClient(59): request time failedjava.net.SocketExceptionAddress family not supported by protocol
    08-22 15:20:12.182DEBUG/AndroidRuntime(376): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
    08-
    22 15:20:12.182DEBUG/AndroidRuntime(376): CheckJNI is ON
    08-22 15:20:12.382DEBUG/AndroidRuntime(376): --- registering native functions ---
    08-
    22 15:20:13.172DEBUG/AndroidRuntime(376): Shutting down VM
    08-22 15:20:13.172DEBUG/dalvikvm(376): Debugger has detachedobject registry had 1 entries
    08-22 15:20:13.182INFO/AndroidRuntime(376): NOTEattach of thread 'Binder Thread #3' failed
    08-22 15:20:13.932DEBUG/AndroidRuntime(384): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
    08-
    22 15:20:13.932DEBUG/AndroidRuntime(384): CheckJNI is ON
    08-22 15:20:14.122DEBUG/AndroidRuntime(384): --- registering native functions ---
    08-
    22 15:20:14.912INFO/ActivityManager(59): Force stopping package de.test.com uid=10036
    08-22 15:20:14.922INFO/Process(59): Sending signalPID369 SIG9
    08-22 15:20:14.974INFO/WindowManager(59): WIN DEATHWindow{4500c5f0 de.test.com/de.test.com.WebAndroidActivity paused=false}
    08-
    22 15:20:15.002INFO/UsageStats(59): Unexpected resume of com.android.launcher while already resumed in de.test.com
    08-22 15:20:15.142INFO/ActivityManager(59): Starting activityIntent act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHERflg=0x10000000 cmp=de.test.com/.WebAndroidActivity }
    08-
    22 15:20:15.162DEBUG/AndroidRuntime(384): Shutting down VM
    08-22 15:20:15.172DEBUG/dalvikvm(384): Debugger has detachedobject registry had 1 entries
    08-22 15:20:15.232INFO/AndroidRuntime(384): NOTEattach of thread 'Binder Thread #3' failed
    08-22 15:20:15.442INFO/ActivityManager(59): Start proc de.test.com for activity de.test.com/.WebAndroidActivitypid=391 uid=10036 gids={3003}
    08-
    22 15:20:15.502WARN/InputManagerService(59): Got RemoteException sending setActive(falsenotification to pid 369 uid 10036
    08-22 15:20:16.062WARN/ActivityThread(391): Application de.test.com is waiting for the debugger on port 8100...
    08-
    22 15:20:16.092INFO/System.out(391): Sending WAIT chunk
    08-22 15:20:16.102INFO/dalvikvm(391): Debugger is active
    08-22 15:20:16.312INFO/System.out(391): Debugger has connected
    08-22 15:20:16.312INFO/System.out(391): waiting for debugger to settle...
    08-
    22 15:20:16.512INFO/System.out(391): waiting for debugger to settle...
    08-
    22 15:20:16.712INFO/System.out(391): waiting for debugger to settle...
    08-
    22 15:20:16.912INFO/System.out(391): waiting for debugger to settle...
    08-
    22 15:20:17.112INFO/System.out(391): waiting for debugger to settle...
    08-
    22 15:20:17.322INFO/System.out(391): waiting for debugger to settle...
    08-
    22 15:20:17.522INFO/System.out(391): waiting for debugger to settle...
    08-
    22 15:20:17.722INFO/System.out(391): waiting for debugger to settle...
    08-
    22 15:20:17.922INFO/System.out(391): waiting for debugger to settle...
    08-
    22 15:20:18.185INFO/System.out(391): debugger has settled (1398)
    08-
    22 15:20:22.072INFO/ActivityManager(59): Displayed activity de.test.com/.WebAndroidActivity6650 ms (total 6650 ms)
    08-
    22 15:20:27.302DEBUG/dalvikvm(127): GC_EXPLICIT freed 159 objects 8152 bytes in 160ms

    Adapter:

    PHP:
    ListAdapter listenAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, meineListe);
                
    final ListView meineListView = (ListView) findViewById(R.id.listView1);
    meineListView.setAdapter(listenAdapter);
               
    meineListView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> a, View v, int position, long id) {

                    

                        
    Intent newActivity = new Intent(v.getContext(),detail.class); 
                        
                        
    Hotel selectedhotel =  (Hotel) meineListView.getAdapter().getItem(position);
                        
                        
                    
                        
     newActivity.putExtra("Hotelname", selectedhotel.getName());
         startActivity(newActivity);                


                    }
                });
     

Diese Seite empfehlen