1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Chaoz, 23.03.2010 #1
    Chaoz

    Chaoz Threadstarter Android-Hilfe.de Mitglied

    kurzum:

    wenn ich eine View aus einer xml heraus laden und in einem dialog anzeigen will, kriege ich eine NullPointerException weil die view ja noch nicht existiert.

    auf den (Dialog) Builder rufe ich .setView(view) auf, die gui-elemente aus der xml werden nicht angezeigt und ich bekomme eine NPE sobald ich auf die komponenten zugreifen will.

    ...irgendwelche Ideen? ^^

    LG
    Chaoz
     
  2. ko5tik, 23.03.2010 #2
    ko5tik

    ko5tik Android-Experte

    Keine Haende - keine Keckse ;)
    Poste mal deinen Quellcode.
     
  3. Chaoz, 24.03.2010 #3
    Chaoz

    Chaoz Threadstarter Android-Hilfe.de Mitglied

    naja.. eigtl ungern.. aber... =p ...

    Code:
    final Builder oBuilder = new AlertDialog.Builder(this);
    TableLayout oTable = (TableLayout) findViewById(R.id.DialogTable);
    oBuilder.setView(oTable);
    
    final EditText oNameText = (EditText) findViewById(R.id.NameText);
    oNameText.setPadding(10, 5, 10, 10);      [B] //NPE[/B]
    
    ...xml...
    Code:
    <TableLayout android:layout_width="wrap_content"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="wrap_content" android:id="@+id/DialogTable">
    
        <TableRow android:id="@+id/NameRow" android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <EditText android:id="@+id/NameText" android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:maxLength="50"/>
        </TableRow>
    </TableLayout>
    nur weil die view im xml ist, heisst das nicht, dass sie schon erzeugt wurde. Normalerweise geschieht das über setContentPane, aber das kann ich nicht auf einen Dialog aufrufen.

    Vorschläge?
     
  4. ko5tik, 24.03.2010 #4
    ko5tik

    ko5tik Android-Experte

    dein findViewById(() bezieht sich auf die Activity, und nicht auf Dialog
    (also: nix da und NPE )

    An deiner Stelle würde ich oBuilder.findViewById() verwenden
     
  5. Chaoz, 24.03.2010 #5
    Chaoz

    Chaoz Threadstarter Android-Hilfe.de Mitglied

    gleicher fehler =p

    hab jetzt n
    Code:
    Dialog oDlg = oBuilder.create();
    
    und n "oDlg.findViewById( ..)" drin... trotzdem noch NPE....

    sollte ich vorher
    Code:
    oDlg.setcontentView(oTable);
    aufrufen, krieg ich da die NPE...
     
  6. ko5tik, 24.03.2010 #6
    ko5tik

    ko5tik Android-Experte

    Dann hast du Dialogkreation versiebt ;)

    Schenke ich dir:
    Code:
            final View nameEntryView = LayoutInflater.from(this).inflate(R.layout.highscore_entry_dialog, null);
            nameEntryField = (TextView) nameEntryView.findViewById(R.id.username_edit);
    
            // create dialog for saving highscore
            saveHighcoreDialog = (new AlertDialog.Builder(this)).setMessage(R.string.doSaveHighscoreQuestion)
                    .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialogInterface, int i) {
                            submitHighscore();
                        }
                    })
                    .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialogInterface, int i) {
                            System.err.println("canceled");
                        }
                    })
                    .setView(nameEntryView)
                    .create();
            saveHighcoreDialog.setOwnerActivity(this);
    
    
     
    Chaoz gefällt das.
  7. Chaoz, 24.03.2010 #7
    Chaoz

    Chaoz Threadstarter Android-Hilfe.de Mitglied

    Hrhr.... "versiebt" würd ichs nich nennen, nur die Interfaces an die ich mich halten muss schränken mich n bissl ein. =/

    Danke für den Code. :)
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Komplexe View erstellen Android App Entwicklung 13.09.2017
[RÜCKMELDUNG FEHLT] Text und Bilder in View einbinden Android App Entwicklung 26.03.2017
[ERLEDIGT] View zum selektieren der Wochentage Android App Entwicklung 19.03.2017
Fehlermeldung: Incorrectly called buildLayer on View: ShortcutAndWidgetContainer, destroying layer... Android App Entwicklung 30.01.2017
Viewelemente neu zeichnen Android App Entwicklung 04.01.2017
Du betrachtest das Thema "un-inflated view - npe?" im Forum "Android App Entwicklung",