我是Android应用开发的新手。但在我的第一个项目中,我遇到了一个错误。我的findViewById()
找不到xml代码中引入的Id
。
这是我的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>
答案 0 :(得分:1)
我的findViewById()找不到已经引入的ID xml代码。
所以这可能导致:
R.java
未正确生成因此,请确保项目中没有错误并清理和重建项目。
答案 1 :(得分:0)
首先,您必须保存xml文件并重建它
当您添加新文件或更改资源文件时,您最好重建项目,它将修改与您所做更改相对应的R.java文件
并且在findViewById()
中我们传递的id不是布局xml文件中的id。实际上它是R.java文件中资源对象的整数表示
注意:如果您使用的是eclipse,则选择自动构建选项
答案 2 :(得分:0)
我有同样的问题,我之所以遇到问题的原因是R类没有使用我添加的新Xml文件资源进行更新。所以我重建了这个项目,繁荣的问题得到了解决。
因此,重建项目可能有所帮助。