【问题标题】:Error: setContentView(R.layout.main) in Android Studio错误:Android Studio 中的 setContentView(R.layout.main)
【发布时间】:2020-10-31 11:08:07
【问题描述】:

我正在开发一个用于学习目的的简单应用程序,其中有一个复选框和一个文本行,显示它已选中或未选中。但它在setContentView(R.layout.main)cb=(CheckBox)findViewById(R.id.check) 行显示错误,这是我的java 代码:

package com.example.kaushal.checkbox;
import android.app.Activity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.R;

public class Checkbox extends Activity
    implements CompoundButton.OnCheckedChangeListener {
    CheckBox cb;
    @Override
    public void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    setContentView(R.layout.main);
    cb=(CheckBox)findViewById(R.id.check);
    cb.setOnCheckedChangeListener(this);
    }
    public void onCheckedChanged(CompoundButton buttonView,
                             boolean isChecked) {
        if (isChecked) {
            cb.setText("This checkbox is: checked");
        }
        else {
            cb.setText("This checkbox is: unchecked");
        }
    }
}

这不是一个重复的问题,我已经看到了相同问题的答案,但都是针对 eclipse。我正在使用 android studio。

这是我的 xml 布局代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"
    android:layout_height="match_parent"   android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"   tools:context=".Checkbox">


    <?xml version="1.0" encoding="utf-8"?>
    <CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/check"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This checkbox is: unchecked" />

</RelativeLayout>

我是android新手,所以请指导我。

【问题讨论】:

  • 您的错误到底是什么?它无法正确识别 id?
  • 显示你的布局 xml。
  • 它显示can not resolve symbol 'main'
  • 尝试从构建菜单清理项目并重建\
  • 查看布局xml代码。

标签: java android checkbox


【解决方案1】:
import android.R;
import android.R.layout;

清理您的项目并重新构建它。

【讨论】:

  • 它显示'import android.R.layout;'是未使用的导入。
【解决方案2】:

您的导入错误:

import android.R;

你没有导入你自己的 R 文件,尝试导入你的 .R,可能是com.example.kaushal.R,而不是 android.R。

【讨论】:

  • 我这里的包裹是什么?
  • 你可以在manifest.xml中看到你的包名,如果是com.exmaple.kaushal,你应该导入com.example.kaushal.R
  • 首先检查你的资源文件是否有错误,如果有,尝试修复它,然后尝试清理项目并重建。
  • 资源文件是什么?
  • @KaushalShah,文件和视图和属性将生成 R.id.xxx,R.layout.xxx,R.anim.xxx
【解决方案3】:

你导入你的包名而不是 R 文件。像这样

导入 com.example.kaushal.checkbox.R;

然后重建你的项目。

import com.example.kaushal.checkbox.R;

【讨论】:

    【解决方案4】:

    试试setContentView(R.layout.activity_main);

    而不是setContentView(R.layout.main);

    【讨论】:

      【解决方案5】:

      我自己找到了答案。我认为错误不是因为这里回答的错误导入。这是因为布局文件和check box分别使用了错误的nameid。我的.xml 布局文件名为activity_my_checkbox.xml。所以我应该使用:

      setContentView(R.layout.activity_my_checkbox);
      

      我的复选框 id 是 c 而不是 check,所以我应该使用

      cb=(CheckBox)findViewById(R.id.c);
      

      【讨论】:

        【解决方案6】:

        我正在通过一个简单的步骤解决这个问题:

        转到文件, 选择无效的缓存/重启, 选择无效的缓存/重启。

        等一下……

        【讨论】:

        • IMO,它不应该是这个问题的答案。它应该作为评论。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 2018-10-17
        • 2012-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多