错误:Android Studio中的setContentView(R.layout.main)

时间:2016-01-23 10:46:50

标签: java android checkbox

我正在开发一个用于学习目的的简单应用程序,其中有一个复选框和一个文本行,显示已选中或未选中。但它在行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新手所以请指导我。

6 个答案:

答案 0 :(得分:0)

导入错误:

import android.R;

您没有导入自己的R文件,尝试导入您的&lt; package&gt; .R,可能是com.example.kaushal.R,而不是android.R。

答案 1 :(得分:0)

import android.R;
import android.R.layout;

清理项目并重新重建。

答案 2 :(得分:0)

导入包名称而不是R文件。像那样

import com.example.kaushal.checkbox.R;

而不是重建你的项目。

import com.example.kaushal.checkbox.R;

答案 3 :(得分:0)

尝试setContentView(R.layout.activity_main);

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

答案 4 :(得分:0)

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

setContentView(R.layout.activity_my_checkbox);

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

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

答案 5 :(得分:0)

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

开始归档, 选择无效的缓存/重启, 选择无效的缓存/重新启动。

请稍等...