为什么当我想显示我的内容时我的对话框不起作用?

Why does my dialog do not work when I want to display my content?

目前,我正在开发 android 工作室应用程序。此应用程序需要在地图上显示一个按钮。如果我按下这个按钮,就会弹出一个关于天气的对话框。问题是,每当我按下它时,就会出现错误。 (我已经知道天气很好,因为我可以在我的地图 activity 中显示它,但不能在从地图 activity

调用的对话框中显示

这是错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

这是我的按钮的代码:

 public void startDialogClima(View view) {
        AlertDialog.Builder mBuilder = new AlertDialog.Builder(MapsActivity.this);
        View mView = getLayoutInflater().inflate(R.layout.dialog_playas, null);
        mBuilder.setView(mView);

        climaText = (TextView) findViewById(R.id.climaText);
        downloadTask.placeIdTask asyncTask = new downloadTask.placeIdTask(new downloadTask.AsyncResponse() {
            public void processFinish(String weather_city, String weather_description, String weather_temperature, String weather_humidity, String weather_pressure, String weather_updatedOn, String weather_iconText, String sun_rise) {


                climaText.setText(weather_temperature);
                //desc.setText(weather_description);
                //weatherIcon.setText(Html.fromHtml(weather_iconText));

            }
        });
        asyncTask.execute("-34.83", "-56.17"); //  asyncTask.execute("Latitude", "Longitude")

        AlertDialog dialog = mBuilder.create();
        dialog.show();
    }

XML 对话框代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <TextView
        android:id="@+id/climaText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:layout_marginTop="20dp"
        android:layout_marginStart="120dp"
        />
</LinearLayout

您忘记说明 climaText 的含义。

尝试替换这个:

climaText = (TextView) findViewById(R.id.climaText);

有了这个:

TextView climaText = (TextView) mView.findViewById(R.id.climaText);

如果不起作用,请尝试:

  TextView climaText = (TextView) findViewById(R.id.climaText);

您应该从对话框视图中扩充您的 TextView

替换

climaText = (TextView) findViewById(R.id.climaText);

climaText = (TextView) mView.findViewById(R.id.climaText);

试试这个:

climaText = (TextView) mView.findViewById(R.id.climaText);

在对话框视图中查找 TextView。