Ошибка в Custom Dialog при попытке изменить или внести изменения в него

Я новичок в этом Android материале. Так что я застрял, может быть, в легкой проблеме. Я получаю сообщение об ошибке, когда пытаюсь изменить фон линейных макетов в моем пользовательском диалоговом окне или установить вид макетов.

    public void onBackPressed() {

            final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                    context);

            LayoutInflater inflater =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View view = inflater.inflate(R.layout.reklamlar, null);

                alertDialogBuilder.setTitle("Çıkış!");
                alertDialogBuilder
                    .setView(inflater.inflate(R.layout.reklamlar, null))
                    .setMessage("Çıkmak istediğinize emin misiniz?")
                    .setCancelable(false)
                    .setNeutralButton("Oy Ver!", new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Intent intent = new Intent();
                            intent.setAction(Intent.ACTION_VIEW);
                            intent.addCategory(Intent.CATEGORY_BROWSABLE);
    intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.okidoki.kimmilyonerolmakister"));
                            startActivity(intent);
                        }
                    })
                    .setPositiveButton("Evet",new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,int id) 
                            interstitial.show();
                            System.exit(0);
                            finish();
                        }
                      })
                    .setNegativeButton("Hayır",new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,int id) 
                            dialog.cancel();
                            interstitial.show();
                        }
                    });
                Log.i("reklamlar","deneme5");

                adView2 = new AdView(this, AdSize.BANNER, "ca-app-pub-4028773540774161/5521683534");
                LinearLayout layout2 = (LinearLayout)findViewById(R.id.reklamdort);
                Log.i("reklamlar","deneme4");
//>>>>>>>>>>>>>>>>>  //layout2.addView(adView2); // also i get error when im trying to add view to layout
//>>>>>>>>>>>>>>>>>  // layout2.setBackgroundResource(R.drawable.paraa); // or change its background
                Log.i("reklamlar","deneme6");
                adView2.loadAd(new AdRequest());
                alertDialogBuilder.setView(view);
                    AlertDialog alertDialog = alertDialogBuilder.create();
                    alertDialog.show();

        }

А вот лог

11-15 13:12:28.376: E/AndroidRuntime(410): FATAL EXCEPTION: main
11-15 13:12:28.376: E/AndroidRuntime(410): java.lang.NullPointerException
11-15 13:12:28.376: E/AndroidRuntime(410):  at com.okidoki.kimmilyonerolmakister.QuizActivity.onBackPressed(QuizActivity.java:134)
11-15 13:12:28.376: E/AndroidRuntime(410):  at android.app.Activity.onKeyUp(Activity.java:1898)
11-15 13:12:28.376: E/AndroidRuntime(410):  at android.view.KeyEvent.dispatch(KeyEvent.java:1280)
11-15 13:12:28.376: E/AndroidRuntime(410):  at android.app.Activity.dispatchKeyEvent(Activity.java:2078)
11-15 13:12:28.376: E/AndroidRuntime(410):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1663)
11-15 13:12:28.376: E/AndroidRuntime(410):  at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2560)
11-15 13:12:28.376: E/AndroidRuntime(410):  at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2535)
11-15 13:12:28.376: E/AndroidRuntime(410):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1867)
11-15 13:12:28.376: E/AndroidRuntime(410):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-15 13:12:28.376: E/AndroidRuntime(410):  at android.os.Looper.loop(Looper.java:123)
11-15 13:12:28.376: E/AndroidRuntime(410):  at android.app.ActivityThread.main(ActivityThread.java:3683)
11-15 13:12:28.376: E/AndroidRuntime(410):  at java.lang.reflect.Method.invokeNative(Native Method)
11-15 13:12:28.376: E/AndroidRuntime(410):  at java.lang.reflect.Method.invoke(Method.java:507)
11-15 13:12:28.376: E/AndroidRuntime(410):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-15 13:12:28.376: E/AndroidRuntime(410):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-15 13:12:28.376: E/AndroidRuntime(410):  at dalvik.system.NativeStart.main(Native Method)

Я думаю, что проблема о инфляторов. Но я не могу понять, почему я получил эту ошибку. Я использую инфляторы неправильно? у меня есть просто linearlaoyut в моем пользовательском диалоге, и он работает нормально, когда не пытаются изменить что-либо из пользовательского диалога.

1 ответ

Решение

Если LinearLayout находится в layout Вы надуты выше, тогда вы должны сказать это, чтобы искать там это. Таким образом, вы бы инициализировали его с

LinearLayout layout2 = (LinearLayout) view.findViewById(R.id.reklamdort);

Это если reklamdort это id из LinearLayout в вашем reklamlar.xml, не говоря это смотреть в раздутом макете, поставив view.findViewById() это смотрит в layout файл, который вы надули в setContentView()

Другие вопросы по тегам