Этот вопрос является продолжением темы Создание всплывающего окна с произвольным содержимым. В том вопросе было предложено такое решение:
AlertDialog.Builder adb = new AlertDialog.Builder(this);
View my_custom_view = (LinearLayout) getLayoutInflater().inflate(R.layout.alert, null); //находим разметку
adb.setView(my_custom_view); //ставим ее в окно
TextView ad_tv = (TextView)my_custom_view.findViewById(R.id.ad_tv); //находим TextView
ad_tv.setTextColor(Color.BLACK);
AlertDialog ad = adb.create();
ad.show();
Я вызываю диалог с помощью FloatingActionButton и получаю такой Exception:
android.support.v4.widget.DrawerLayout cannot be cast to android.widget.LinearLayout
Исключение происходит во второй строке. Сразу вопрос: причём тут DrawerLayout? Тем более, я не кастовал его, я кастовал Linear.
В подобных вопросах (как в этом) говорилось, что это действительно имеет отношение к DrawerLayout, но такое решение не помогло:
mDrawerLayout.closeDrawer(Gravity.LEFT);
Прошу Вас не просто написать решение, а объяснить, что происходит.
View my_custom_view = (LinearLayout) getLayoutInflater().inflate(R.layout.alert, null);
Скорее всего в твоем layout`e корневым элементом является DrawerLayout, а ты его хочешь прикостовать к LinearLayout, поэтому и ругается. Сделай так:
View my_custom_view = getLayoutInflater().inflate(R.layout.alert, null);
Продвижение своими сайтами как стратегия роста и независимости