Android视图中的背景颜色设置抛出错误

ldioqlga  于 2023-06-27  发布在  Android
关注(0)|答案(1)|浏览(137)

我想在我的Android应用程序中显示Toast,而不向现有函数“ShowToast”添加额外的参数/参数/输入,因为ShowToast已经在许多Java文件中使用过了。所以我不能在每个地方都添加额外的输入参数。
这是我的代码,我通过HTML字体标签添加文本颜色,工作正常。

public static void ShowToast(Context context, String Message){
    Toast toast = Toast.makeText(context, Html.fromHtml("<font color='#FF0001' ><b>" + Message + "</b></font>"), Toast.LENGTH_LONG);
    toast.getView().setBackgroundColor(Integer.parseInt("#000000"));
    toast.setGravity(Gravity.TOP, 0, 0);
    toast.show();
}

但是当我添加setBackgroundColor时,应用挂起并显示以下错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setBackgroundColor(int)' on a null object reference

有没有人可以帮助,以什么可能是在同一行的替代?
先谢谢你了。

u5rb5r59

u5rb5r591#

吐司.view方法在Android 11之后返回null。您应该创建一个新的custom_toast_background.xml并将其绑定到toast
首先,创建一个custom_toast_background. xml布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/container"
          android:orientation="horizontal"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:padding="8dp"
          android:background="#DAAA"
          >
<ImageView android:src="@drawable/image"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_marginRight="8dp"
           />
<TextView android:id="@+id/text"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          />

设置吐司的布局

LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast_background,
            (ViewGroup) findViewById(R.id.container));

toast.setView(layout);

相关问题