ID未解析或不是字段

时间:2011-12-24 17:11:16

标签: android

我正在使用first program开发Android。它根据用户点击的按钮添加或减去总数。我已经创建了它xml,现在我正在创建它的java,但是我遇到了一些错误(它尚未完全开发)。如果有人能指导我,我会很有帮助。

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Your Total is 0" 
        android:gravity="center"    

        />

  <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="+1"
        android:layout_gravity="center" 
        android:text="Button" />  


    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="-1" 
        android:layout_gravity="center" 
        android:text="Button" />



</LinearLayout>

Java源文件

package com.fahad.project;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class AndroidProject1Activity extends Activity {
    /** Called when the activity is first created. */
    int numberCount;
    Button add, sub;
    TextView display;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        numberCount =0;
        add=(Button)findViewById(R.id.bAdd);<!--error-->
        sub=(Button)findViewById(R.id.bSub);<!--error-->
        display=(TextView)findViewById(R.id.tvDisplay);<!--error-->

        add.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });

        sub.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });


    }
}

错误

Id is not resolved or is not a field

请帮我解决此错误。感谢。

修改

粘贴.R文件,

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.fahad.project;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int ic_launcher=0x7f020000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040001;
        public static final int hello=0x7f040000;
    }
}

3 个答案:

答案 0 :(得分:1)

使用XML布局中的ID值。尝试...

add=(Button)findViewById(R.id.button1);
sub=(Button)findViewById(R.id.button2);

您可能希望为他们提供更具描述性的ID!

您还没有在XML中提供TextView ID,我将留下一个ID供您修复:]

答案 1 :(得分:1)

确定!你在xml布局中放入的id是在R.id类中自动生成的。

例如:

<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="+1"
        android:layout_gravity="center"
        android:text="Button" /> 

在此xml按钮标记中,您将android:id="@+id/button1"和ID button1自动添加到R.id

您使用此ID而不是您自己的

在Java代码中连接您的Button 像这样

add=(Button)findViewById(R.id.button1);

答案 2 :(得分:1)

您将按钮ID声明为“button1”和“button2”,但将它们称为“bAdd”和“bSub”,这将无效。

如果您的代码即使更正了引用也无法编译,请执行右键单击项目 - &gt;刷新和项目 - &gt;在Eclipse中清理。

如果它仍然不起作用,那么你可能搞砸了项目设置。由于您显然只是做了一些初步步骤,只需创建一个新项目并将代码复制到那里。