Исключение IllegalStateException о закусочной

#android #android-intent #illegalstateexception #snackbar

#Android #android-намерение #исключение illegalstateexception #snackbar

Вопрос:

Я получил исключение IllegalStateException, когда я скомпилировал свой snackbar. Результатом приложения является то, что я могу выполнить первую кнопку, но как только я попытаюсь использовать свою вторую кнопку, приложение отключится. Код и сообщение об ошибке отображаются следующим образом:

 public void callIntent(View view) {
    Intent intent = null;
    switch (view.getId()) {
        case R.id.ZhaoDisplay:
            Toast toast = Toast.makeText(getApplicationContext(),
                    "Zhao Wang, 991556434; Website Name: Amazon", Toast.LENGTH_SHORT);
            toast.show();
            intent = new Intent(Intent.ACTION_VIEW,
                    Uri.parse("https://www.amazon.ca"));
            startActivity(intent);
            break;

        case R.id.WangDisplay:

            intent = new Intent(this, WangActivity.class);
            //TextMulti

            editInput = (EditText)findViewById(R.id.TextMulti);
            String userInput = editInput.getText().toString();
            intent.putExtra("valueFromUser", userInput);

            Snackbar snackbar = null;
            snackbar = Snackbar.make(findViewById(R.id.content),
                    "My Second Screen_Zhao Wang 991556434", 10);
            snackbar.show();

            startActivity(intent);
            break;

        default:
            break;
    }




     E/AndroidRuntime: FATAL EXCEPTION: main
Process: zhao.wang.s991556434, PID: 15778
java.lang.IllegalStateException: Could not execute method for android:onClick
    at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:414)
    at android.view.View.performClick(View.java:7125)
    at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992)
    at android.view.View.performClickInternal(View.java:7102)
    at android.view.View.access$3500(View.java:801)
    at android.view.View$PerformClick.run(View.java:27336)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7356)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409)
    at android.view.View.performClick(View.java:7125) 
    at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992) 
    at android.view.View.performClickInternal(View.java:7102) 
    at android.view.View.access$3500(View.java:801) 
    at android.view.View$PerformClick.run(View.java:27336) 
    at android.os.Handler.handleCallback(Handler.java:883) 
    at android.os.Handler.dispatchMessage(Handler.java:100) 
    at android.os.Looper.loop(Looper.java:214) 
    at android.app.ActivityThread.main(ActivityThread.java:7356) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 
 Caused by: java.lang.IllegalArgumentException: No suitable parent found from the given view. Please provide a valid view.
    at com.google.android.material.snackbar.Snackbar.make(Snackbar.java:158)
    at zhao.wang.s991556434.ZhaoActivity.callIntent(ZhaoActivity.java:60)
    at java.lang.reflect.Method.invoke(Native Method) 
     
 

Я попытался поместить часть кода snackbar в свою вторую активность и скомпилировать ее, но она показала ту же ошибку. Могу ли я попросить помощи по этому поводу? Спасибо.

Комментарии:

1. Не могли бы вы скопировать свое полное исключение для нас здесь? Кроме того, что такое R.id.content?

Ответ №1:

Проблема заключается в передаче неправильного представления для метода snackbar make , вместо этого попробуйте следующее

 snackbar = Snackbar.make(findViewById(android.R.id.content),
                    "My Second Screen_Zhao Wang 991556434", 10);
            snackbar.show();
 

Комментарии:

1. рад, что это сработало, прими мой ответ, приятель, счастливого кодирования