Диалоговое окно сбоя приложения

#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);