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

Android类型不兼容错误:期望com.example.luckandchance.TextView却得到View

解决"Incompatible types. Found: 'android.view.View', required: 'com.example.luckandchance.TextView'"错误

错误原因

你代码里存在两个问题:

  • 未导入系统自带的TextView和Button类,编译器误将其识别为你自定义的com.example.luckandchance.TextView(但你并未定义该类)
  • findViewById()方法返回的是View类型,直接赋值给TextView/Button变量需要进行类型强转

解决方案

方案1:补全导入并强转类型

在代码顶部添加系统控件的导入语句,同时对findViewById()的返回结果进行强转:

package com.example.luckandchance;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import androidx.navigation.ui.AppBarConfiguration;
import com.example.luckandchance.databinding.ActivityCoinTossBinding;
// 新增系统控件导入
import android.widget.TextView;
import android.widget.Button;

public class CoinToss extends AppCompatActivity {

private TextView textView4;
private Button button3;

    private AppBarConfiguration appBarConfiguration;
    private ActivityCoinTossBinding binding;

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

        // 强转类型后赋值
        textView4 = (TextView) findViewById(R.id.textView4);
        button3 = (Button) findViewById(R.id.button3);
    }
}

方案2:使用视图绑定(更推荐)

你代码中已经声明了ActivityCoinTossBinding,直接用视图绑定获取控件更安全,无需强转也无需额外导入:

package com.example.luckandchance;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.navigation.ui.AppBarConfiguration;
import com.example.luckandchance.databinding.ActivityCoinTossBinding;

public class CoinToss extends AppCompatActivity {

    private AppBarConfiguration appBarConfiguration;
    private ActivityCoinTossBinding binding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 用视图绑定初始化布局
        binding = ActivityCoinTossBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        // 直接通过binding对象获取控件并操作
        binding.textView4.setText("要显示的文本");
        binding.button3.setOnClickListener(v -> {
            // 按钮点击逻辑
        });
    }
}

视图绑定能避免类型转换错误,还能防止因控件ID拼写错误导致的空指针问题,是Android官方推荐的控件获取方式。

内容的提问来源于stack exchange,提问作者Rohit Bhandwalkar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:10:30