myGridLayout = findViewById (R.id.myGridLayout); вылетает мое приложение - PullRequest
0 голосов
/ 22 марта 2020

я видел, что некоторые ответы предполагают, что я должен перейти на эту строку кода

android.support.v7.widget.GridLayout

или

androidx.gridlayout.widget.GridLayout

ни один не работает. также импорт как v7 и как androidx не работал. пожалуйста помоги. до сих пор все работало нормально :( спасибо!

MainActivity:

package com.example.braindtrainer;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.GridLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    GridLayout myGridLayout;
    Button goButton;
    TextView timeTextView;
    TextView scoreTextView;
    TextView questionTextView;
    TextView notifyTextView;


    public void goClick(View view){

        Log.i("goButton","Pressed");
        timeTextView.setVisibility(View.VISIBLE);
        scoreTextView.setVisibility(View.VISIBLE);
        questionTextView.setVisibility(View.VISIBLE);
        notifyTextView.setVisibility(View.VISIBLE);
        goButton.setVisibility(View.INVISIBLE);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myGridLayout = findViewById(R.id.myGridLayout);
        goButton = findViewById(R.id.goButton);
        timeTextView = findViewById(R.id.timerTextView);
        scoreTextView = findViewById(R.id.scoreTextView);
        questionTextView = findViewById(R.id.questionTextView);
        notifyTextView = findViewById(R.id.notifyTextView);
    }
}

Макет

    <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/goButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#B388FF"
        android:onClick="goClick"
        android:text="GO!"
        android:textSize="70dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.gridlayout.widget.GridLayout
        android:id="@+id/myGridLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="300dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginBottom="300dp"
        android:visibility="invisible"
        app:columnCount="2"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:rowCount="2">

        <TextView
            android:id="@+id/firstTextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#991230C8"
            android:tag="1"
            android:text="567"
            android:textColor="#000000"
            android:textSize="100sp"
            app:layout_column="0"
            app:layout_row="0" />

        <TextView
            android:id="@+id/secondTextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#A9C62424"
            android:tag="2"
            android:text="567"
            android:textColor="#000000"
            android:textSize="100sp"
            app:layout_column="1"
            app:layout_row="0" />

        <TextView
            android:id="@+id/thirdTextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#9A60E841"
            android:tag="3"
            android:text="567"
            android:textColor="#000000"
            android:textSize="100sp"
            app:layout_column="0"
            app:layout_row="1" />

        <TextView
            android:id="@+id/fourthTextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#94CFBF30"
            android:tag="4"
            android:text="567"
            android:textColor="#000000"
            android:textSize="100sp"
            app:layout_column="1"
            app:layout_row="1" />

    </androidx.gridlayout.widget.GridLayout>

    <TextView
        android:id="@+id/timerTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="16dp"
        android:background="#EA80FC"
        android:text="15 s"
        android:textColor="#000000"
        android:textSize="60sp"
        android:visibility="invisible"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/scoreTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:background="#FFAB40"
        android:text="0/0"
        android:textColor="#000000"
        android:textSize="60dp"
        android:visibility="invisible"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/questionTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="29dp"
        android:layout_marginLeft="29dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="34dp"
        android:layout_marginRight="34dp"
        android:background="#3E3C1515"
        android:text="4 + 6"
        android:textColor="#000000"
        android:textSize="50dp"
        android:visibility="invisible"
        app:layout_constraintEnd_toStartOf="@+id/scoreTextView"
        app:layout_constraintStart_toEndOf="@+id/timerTextView"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/notifyTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="39dp"
        android:text="00000"
        android:textColor="#000000"
        android:textSize="50dp"
        android:visibility="invisible"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/myGridLayout" />

</androidx.constraintlayout.widget.ConstraintLayout>

Журнал

2020-03-22 18:22:13.472 7929-7929/com.example.braindtrainer E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.braindtrainer, PID: 7929
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.braindtrainer/com.example.braindtrainer.MainActivity}: java.lang.ClassCastException: androidx.gridlayout.widget.GridLayout cannot be cast to android.widget.GridLayout
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
     Caused by: java.lang.ClassCastException: androidx.gridlayout.widget.GridLayout cannot be cast to android.widget.GridLayout
        at com.example.braindtrainer.MainActivity.onCreate(MainActivity.java:36)
        at android.app.Activity.performCreate(Activity.java:7009)
        at android.app.Activity.performCreate(Activity.java:7000)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) 
        at android.app.ActivityThread.-wrap11(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6494) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 

1 Ответ

1 голос
/ 22 марта 2020

Из журнала cra sh написано, что существует исключение приведения класса. Вы использовали GridLayout из библиотеки androidx в xml, тогда как вы пытаетесь привести его к GridLayout из android модулей библиотеки в вашем классе java. Следовательно, вы получаете это исключение. Вам необходимо использовать одну и ту же версию для макета xml и класса java.

Вам необходимо импортировать следующее в свой класс Java.

import androidx.gridlayout.widget.GridLayout

И удалить следующее

import android.widget.GridLayout;
...