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

Beginner: ListView Intent ausführen!

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Luser_k, 12.01.2010.

  1. Luser_k, 12.01.2010 #1
    Luser_k

    Luser_k Threadstarter Junior Mitglied

    Beiträge:
    29
    Erhaltene Danke:
    2
    Registriert seit:
    04.01.2010
    Hi,

    ich benötige Hilfe, bin ein Beginner.

    Ich habe mittels ListActivity eine Liste erstellt.

    Wenn ich einen Eintrag auswähle, dann soll durch ein Intent
    eine neue Activity gestartet werden.

    Fehlermeldung: Die Anwendung wird geschlossen.

    Wo ist der Fehler? Ich sehe keine Fehler :)

    listActivity: Start-Activity

    Code:
    package de.listing.app;
    
    import android.app.ListActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.ListAdapter;
    import android.widget.ListView;
    
    public class listActivity extends ListActivity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setTitle(R.string.app_name);
            getListView().setTextFilterEnabled(true);
            showData();        
        }
        private void showData(){
            
            String[] months = new String[]{"january","february","march","april","may","june","july","august","september","october","november","december"};
            
            ListAdapter monthAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,months);
            setListAdapter(monthAdapter);
        }
        protected void onListItemClick(ListView liste,View view,int position,long id){
            super.onListItemClick(liste, view, position, id);
            
            Intent intent = new Intent();
            intent.setClass(listActivity.this,
            showChoice.class);
            startActivity(intent);
            finish();
        }
    }
    showChoice: Activity, das nach der Auswahl angezeigt werden soll

    Code:
    package de.listing.app;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class showChoice extends Activity{
        
    public void onCreate(Bundle savedInstanceState) {
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
    }
    }


    main.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
        
    </LinearLayout>
    
     
  2. Mort, 12.01.2010 #2
    Mort

    Mort Android-Lexikon

    Beiträge:
    960
    Erhaltene Danke:
    262
    Registriert seit:
    16.11.2009
    Erstmal ein allgemeiner Tipp: Wenn du die App im Emulator (oder auf dem Gerät im Debug-Mode) ausführst, findet sich der Fehler-Stacktrace im "LogCat"-Fenster. Wenn's nicht angezeigt wird: Window - Show View - Other - Android - LogCat.
    Und dann würde ich mal versuchen, der ListActivity auch ihr Layout mitzuteilen, also setContentView(...) in onCreate(...).

    (Ach ja, und üblicherweise schreibt man Klassennamen in Java mit einem Großbuchstaben am Anfang. Aber das ist natürlich kein Muss...)
     
  3. Luser_k, 12.01.2010 #3
    Luser_k

    Luser_k Threadstarter Junior Mitglied

    Beiträge:
    29
    Erhaltene Danke:
    2
    Registriert seit:
    04.01.2010
    Hi,

    danke für Deine Hilfe. Das mit der LogCat wußte ich überhaupt nicht.

    Und schon den Fehler gefunden und funktioniert.

    Musste in der Manifest-Datei die 2.Activity registrieren.

    Danke für die schnelle Antwort.
     
  4. Mort, 12.01.2010 #4
    Mort

    Mort Android-Lexikon

    Beiträge:
    960
    Erhaltene Danke:
    262
    Registriert seit:
    16.11.2009
    Mich hat daran am meisten verwirrt, dass auch "ungefangene" Exceptions nur dort erscheinen. Bei "normalen" Java-Programmen landen die in der "Console".
    Du kannst übrigens auch eigene Einträge schreiben: Log.d(ebug), Log.e(rror), etc. Erleichtert die Fehlersuche manchmal gewaltig...
    Schön wär's noch, wenn man relativ einfach an die Logs von Anwendern käme (nach Murphy's Gesetz kann man Fehler ja nur selten lokal nachvollziehen). Soweit ich das sehe, geht das aber nur mit den SDK-Tools.
     

Diese Seite empfehlen