#android #button #dialog
#Android #кнопка #диалоговое окно
Вопрос:
Хорошо, просто чтобы знать, я скопировал-вставил код с веб-сайта Android, поэтому я не думаю, что что-то не так.
Проблема в том, что когда я нажимаю кнопку, она выходит из строя.И он вылетает из кода диалога, потому что у меня там больше ничего нет.
Код:
MainDialog.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@ id/layout_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<ImageView
android:id="@ id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="10dp"
/>
<TextView android:id="@ id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF"
/>
</LinearLayout>
И в случае нажатия кнопки 1:
Context mContext = getApplicationContext();
Dialog dialog = new Dialog(mContext);
dialog.setContentView(R.layout.maindialog);
dialog.setTitle("Custom Dialog");
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Hello, this is a custom dialog!");
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource(R.drawable.icon);
dialog.show();
Ответ №1:
Вы используете Activity
контекст и добавляете вызов в dialog.show();
:
Context mContext = this; //Assumes you are calling this from within an activity
Dialog dialog = new Dialog(mContext);
dialog.setContentView(R.layout.maindialog);
dialog.setTitle("Custom Dialog");
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Hello, this is a custom dialog!");
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource(R.drawable.icon);
dialog.show();
Комментарии:
1. хорошо, теперь это есть. Однако он выходит из строя! Я помещу журнал в первое сообщение.
2. Вам нужно использовать
Activity
контекст вместоgetApplicationContext()
. Если вы запускаете все это из действия, вы можете вызватьDialog dialog = new Dialog(this);