突然,“R.java”从我的“CheckBox”程序中被删除了?

时间:2014-02-10 09:33:54

标签: android checkbox r.java-file

我正在学习Android(我是初学者)并为CheckBox制作程序 一切似乎都很好,但是当我突然清理我的项目时,R.java被删除了,它给出了一个错误 我检查了三次,但没有收回。

这是我的源代码:

activity_main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="IPhone" />

    <CheckBox
        android:id="@+id/checkBox2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Android" 
        android:checked="true"/>

    <CheckBox
        android:id="@+id/checkBox3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Windows Mobile"
        android:checked="false"/>

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Display" />

</LinearLayout>

MainActivity.java

package com.example.lesson06;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        addListenerOnButton();
        addListenerOnChkbox();
    }
    public void addListenerOnChkbox(){
        CheckBox chkbx=(CheckBox)findViewById(R.id.checkBox1);
        chkbx.setOnClickListener(new OnClickListener(){

            public void onClick(View v){
                if(((CheckBox) v).isChecked()){
                    Toast.makeText(MainActivity.this, "Bro..try Android :)", Toast.LENGTH_LONG);
                }
            }
        });
    }

    public void addListenerOnButton(){
        final CheckBox chkbx=(CheckBox)findViewById(R.id.checkBox1);
        final CheckBox chkbx2=(CheckBox)findViewById(R.id.checkBox2);
        final CheckBox chkbx3=(CheckBox)findViewById(R.id.checkBox3);
        final Button btn=(Button)findViewById(R.id.btn);

        btn.setOnClickListener(new OnClickListener(){
            public void onClick(View v){
                StringBuffer result=new StringBuffer();
                result.append("IPhone check: ").append(chkbx.isChecked());
                result.append("\nAndroid check: ").append(chkbx2.isChecked());
                result.append("\nWindows Mobile Check: ").append(chkbx3.isChecked());

                Toast.makeText(MainActivity.this, result.toString(), Toast.LENGTH_LONG).show();
            }
        });
    }
}

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:4)

您的按钮标记未关闭到activity_main.xml

<Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Display"

关闭

<Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Display" />

并清理项目。您的R.java课程将被生成。

答案 1 :(得分:1)

将按钮更改为以下内容:

<Button
    android:id="@+id/btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Display"/>

您似乎忘记关闭按钮标记,因此AAPT无法生成新的R.class。

答案 2 :(得分:1)

通常,当您在一个或多个xml文件上出现错误时,不会创建R.java。在这种情况下,错误位于Button标签中(IDE应警告您该错误)。