0

我对 Android 应用程序开发非常陌生。但在我的第一个项目中,我遇到了一个错误。我findViewById()没有找到Id已在 xml 代码中引入的。

这是我的Java代码:

package com.example.fuzzylogic;

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

public class MainActivity extends Activity {
int counter;
Button add, sub;
TextView display;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        counter = 0;
        add = (Button) findViewById(R.id.bAdd);
        sub = (Button) findViewById(R.id.bSubtract);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

这是我的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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
    android:id="@+id/tvDisplay"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="Your total is 0"
    android:textSize="45dp" />

<Button
    android:id="@+id/bAdd"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tvDisplay"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="20dp"
    android:text="add one"
    android:textSize="25dp" />

<Button
    android:id="@+id/bSubtract"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/bAdd"
    android:layout_below="@+id/bAdd"
    android:layout_marginTop="23dp"
    android:text="substract one"
    android:textSize="25dp" />



</RelativeLayout>
4

3 回答 3

1

我的 findViewById() 没有找到 xml 代码中引入的 Id。

所以这可能会导致:

  • XML 文件中的错误,然后R.java未正确生成
  • 您没有保存所有编辑的 xml 文件(ctrl+s)

因此,请确保您的项目中没有错误,并清理并重建您的项目。

于 2013-03-12T18:04:36.057 回答
0

首先,您必须保存 xml 文件并重新构建它

当您添加新文件或更改资源文件时,您最好重建项目,它将根据您所做的更改修改您的 R.java 文件

并且findViewById()我们传递的 id 不是您的布局 xml 文件中的 id。实际上它是 R.java 文件中资源对象的整数表示

注意:如果您使用的是 eclipse,请选择自动构建选项

于 2013-03-12T18:15:21.480 回答
0

我遇到了同样的问题,我遇到问题的原因是 R 类没有使用我添加的新 Xml 文件资源进行更新。所以我重建了这个项目,然后问题就解决了。

所以重建项目可能会有所帮助。

于 2018-01-04T06:57:31.813 回答