2017-01-12 6 views
1

アプリを起動した後にダイアログが開始されます! (OWN DIALOG)しかし、私はダイアログにのImageButtonを追加する際にアプリケーションがクラッシュしませんが、私は自分のダイアログxmlファイルを使用したいと私自身の設計しIMAGEBUTTONここImageButtonを使用した独自のダイアログ

は私のコードは次のとおりです。

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誰かが私を助ける私はこれを理解していないと私は初心者です

+0

:これにより

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

を。ダイアログレイアウトでボタンを定義しましたか?レイアウトを投稿できますか? – Pztar

+0

はいダイアログ・レイアウトのボタンを定義します – Jordie

+0

原因:java.lang.NullPointerException:nullオブジェクト参照で仮想メソッド 'void android.widget.ImageButton.setOnClickListener(android.view.View $ OnClickListener)'を呼び出そうとしました。 Pztar – Jordie

答えて

0

あなたImageButton btnverstanden;R.layout.activity_menue上にある場合、このボタンはダイアログ内でこれを初期化するR.layout.activity_dialog_tutorial上にある場合、あなたは、ダイアログにこのImageButtonを追加することはできません。

この取り除く:あなたのlogcatを投稿

 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

あなたは最高です! @ W4R10CK – Jordie

+0

@ジョーディー、私は全部のプロジェクトをコードするよ。ハッハッハーはただの冗談です。 – W4R10CK

+0

haha​​haahahhah:D @ W4R10CK – Jordie

0

あなたはNullPointException:ImageButton.setOnClickListenerを持って、つまりbtnverstandenがnullであると言った。

ImageButton btnverstandenはあなたのダイアログレイアウトにありますが、あなたはmianレイアウトR.layout.activity_menueで初期化していますので、例外があります。

たぶん、あなたは次のように書く必要があります。

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); 
関連する問題