You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android GridView开发类型不兼容报错 无法访问控件问题求助

问题解决方案

核心错误原因

你出现的报错是类名冲突导致的类型引用错误:你自己写的Activity类命名为GridView,和Android原生系统控件android.widget.GridView同名,代码中错误导入了自定义的Activity类作为GridView的类型,导致findViewById返回的系统控件View无法转换为你自定义的Activity类型,触发类型不兼容报错。


分步解决方法

  • 第一步:重命名你的Activity类,不要和系统控件重名,比如改为GridViewActivity,同步修改AndroidManifest文件中该Activity的注册信息。
  • 第二步:删除代码中错误的导入语句import com.example.listviewgridview.GridView,替换为导入系统原生GridView控件的语句import android.widget.GridView。
  • 第三步:调整findViewById代码,增加显式类型转换,兼容低版本Android SDK的类型推导规则。
  • 第四步:修改布局文件中tools:context属性,改为和修改后的Activity类名对应。

修改后完整代码

Activity代码

package com.example.listviewgridview;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;

// 类名修改为不冲突的名称
public class GridViewActivity extends AppCompatActivity {

    String[] language_names = new String[]{
            "Android Studio", "Angular JS", "BootStrap", "C", "CSS", "Github",
            "HTML", "JAVA", "JavaScript", "JQuery", "Nodejs", "PHP", "Python", "React", "Ruby", "Sql", "Wordpress"
    };

    GridView gridView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_grid_view);
        // 增加显式类型转换
        gridView = (GridView) findViewById(R.id.main);
    }
}

布局文件代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".GridViewActivity">


    <GridView
        android:id="@+id/main"
        android:verticalSpacing="3dp"
        android:numColumns="2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        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" >

    </GridView>
</LinearLayout>

注意:后续开发自定义类时,不要和Android系统自带的控件、组件类重名,可有效避免同类类型引用冲突问题

内容的提问来源于stack exchange,提问作者Sirigiri Sri Sai Sharanya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:48:04