Тост дает ClassCastException - PullRequest
       7

Тост дает ClassCastException

0 голосов
/ 15 сентября 2018

В некоторых устройствах, таких как Samsung Galaxy Grand Duos android 7.1.2 мой пользовательский тост с этим исключением

java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.LinearLayout
          at ir.mrchabok.chabokpassenger.Helpers.Helper.MyToast(Helper.java:196)
          at ir.mrchabok.chabokpassenger.Activity.MapsActivity$4.onClick(MapsActivity.java:345)
          at android.view.View.performClick(View.java:5637)
          at android.view.View$PerformClick.run(View.java:22433)
          at android.os.Handler.handleCallback(Handler.java:751)
          at android.os.Handler.dispatchMessage(Handler.java:95)
          at android.os.Looper.loop(Looper.java:153)
          at android.app.ActivityThread.main(ActivityThread.java:6244)
          at java.lang.reflect.Method.invoke(Native Method)
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)

А мой собственный код тоста:

public static void MyToast(Context context, String text){
    Toast toast = Toast.makeText(context, text, Toast.LENGTH_LONG);
    LinearLayout toastLayout = (LinearLayout) toast.getView();
    TextView tvToast = (TextView) toastLayout.getChildAt(0);
    tvToast.setTypeface(globTypeFace);
    toast.show();
}

Как вы знаете, макет тоста - LinearLayout, и я не изменил макет.

1 Ответ

0 голосов
/ 15 сентября 2018

java.lang.ClassCastException: android.widget.RelativeLayout нельзя преобразовать в android.widget.LinearLayout

Кажется, что представление является типом RelativeLayout, а не LinearLayout.Так что вы можете попробовать изменить LinearLayout на RelativeLayout.

Кстати, вам лучше использовать Toast # setView

...