Ошибка в 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()