2017-01-12 6 views
1

Der Dialog startet nach dem Start der App! (OWN DIALOG) Aber wenn ich einen Image zum Dialog der App hinzufügen, nicht abstürzen, aber ich möchte, dass meine eigenen Dialog XML-Datei und meine eigene entworfen Image verwendenEin eigener Dialog mit ImageButton

Hier ist mein Code:

public class MenueActivity extends AppCompatActivity { 

    SharedPreferences mPrefs; 
    ImageButton btnverstanden; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_menue); 

     btnverstanden = (ImageButton)findViewById(R.id.verstanden); 

     Context mContext = this.getApplicationContext(); 
     mPrefs = mContext.getSharedPreferences("myAppPrefs", 0); 

     if(getFirstRun()) { 

      final Dialog dialog = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 
      dialog.setContentView(R.layout.activity_dialog_tutorial); 

      btnverstanden.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        dialog.dismiss(); 
       } 
      }); 

      setRan(); 
      dialog.show(); 
     } 
    } 

    public boolean getFirstRun() { 
     return mPrefs.getBoolean("firstRun", true); 
    } 

    public void setRan() { 
     SharedPreferences.Editor edit = mPrefs.edit(); 
     edit.putBoolean("firstRun", false); 
     edit.apply(); 
    } 

} 

thx wenn jemand hilft mir Ich verstehe das nicht und ich bin ein Anfänger

+0

Post logcat. Haben Sie Ihre Schaltfläche im Dialoglayout definiert? Kannst du dein Layout posten? – Pztar

+0

ja ich definiere die Schaltfläche im Dialoglayout – Jordie

+0

verursacht durch: java.lang.NullPointerException: Versuch, virtuelle Methode 'void android.widget.ImageButton.setOnClickListener (android.view.View $ OnClickListener)' auf einem Null-Objekt-Verweis aufzurufen @ Pztar – Jordie

Antwort

0

Wenn Ihr ImageButton btnverstanden; auf R.layout.activity_menue ist, können Sie nicht diese ImageButton zu Dialog, hinzufügen, wenn diese Schaltfläche auf R.layout.activity_dialog_tutorial dies innerhalb des Dialog initialisieren. diese

Entfernen:

btnverstanden = (ImageButton)findViewById(R.id.verstanden); 

mit diesem:

 final Dialog dialog = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 
     dialog.setContentView(R.layout.activity_dialog_tutorial); 
     ImageButton btnverstanden = (ImageButton) dialog.findViewById(R.id.verstanden); //<---init here 

     btnverstanden.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); 
      } 
     }); 
+0

Bro, du bist der Beste! @ W4R10CK – Jordie

+0

@Jordie, scheint, dass ich Ihr ganzes Projekt kodieren werde. hahaha, ich mach nur Spaß. – W4R10CK

+0

hahahaahahhah: D @ W4R10CK – Jordie

0

Sie sagten, Sie haben NullPointException:ImageButton.setOnClickListener, was bedeutet, dass btnverstanden ist null.

ImageButton btnverstanden ist in Ihrem Dialog-Layout, aber Sie init in Ihrem Mian-Layout R.layout.activity_menue, so denke ich, es ist der Grund, warum Sie die Ausnahme erhalten haben.

Vielleicht sollten Sie so schreiben:

final Dialog dialog = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 
dialog.setContentView(R.layout.activity_dialog_tutorial); 
View view = getLayoutInflate().inflate(R.layout.activity_dialog_tutorial,null); 
btnverstanden = (ImageButton)view.findViewById(R.id.verstanden);