Android 为什么我的R.java文件没有从XML文件生成显示id或按钮id?
我已经在谷歌上搜索并阅读了几个堆栈溢出的答案,我很确定问题出在我的布局文件上。我还清理了我的项目,因此删除了我的R.java文件,但我认为在我发现错误后,它将自动生成 这是我的XML代码Android 为什么我的R.java文件没有从XML文件生成显示id或按钮id?,android,xml,eclipse,android-layout,r.java-file,Android,Xml,Eclipse,Android Layout,R.java File,我已经在谷歌上搜索并阅读了几个堆栈溢出的答案,我很确定问题出在我的布局文件上。我还清理了我的项目,因此删除了我的R.java文件,但我认为在我发现错误后,它将自动生成 这是我的XML代码 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width
<LinearLayout
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:orientation="vertical"
android:padding="20sp"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/update"
android:textSize="25sp" />
<EditText
android:id="@+id/guess"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:textSize="26sp" />
<TextView
android:id="@+id/display"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="6sp"
android:paddingTop="6sp"
android:text="@string/default"
android:textSize="18sp" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:onClick="evaluate"
android:text="@string/btn" />
</LinearLayout>
更新:这是MainActivity.java文件中的求值方法
public void evaluate(View view)
{
Button button = (Button) view;
TextView log = (TextView)(findViewById(R.id.display));
EditText field = (EditText)(findViewById(R.id.guess));
if(button.getText().toString().charAt(0) == 'S')
{
int guess = Integer.parseInt(field.getText().toString());
if(guess == num)
{
log.setText("Congratulations! You guessed it in " + guessCount + "moves");
button.setText("New game");
}
else
{
guessCount++;
if(guess < num)
log.setText("Try again. Too low");
else
log.setText("Try again. Too high");
}
}
else
refresh(button, log);
}
public void评估(视图)
{
按钮=(按钮)视图;
TextView日志=(TextView)(findViewById(R.id.display));
EditText字段=(EditText)(findViewById(R.id.guess));
if(button.getText().toString().charAt(0)='S')
{
int guess=Integer.parseInt(field.getText().toString());
如果(猜测==num)
{
log.setText(“祝贺你!你在“+guessCount+”移动中猜到了”);
button.setText(“新游戏”);
}
其他的
{
猜数++;
如果(猜测
eclipse没有向您显示res文件夹中的任何错误吗
在:android:onClick=“evaluate”行中,我以前没有见过这样的值,对吗?
R.java
在res
文件夹或AndroidManifest.xml
文件中存在任何编译错误时都会被删除。假设没有编译错误(除了应该引用R.java中字段的文件),我的第一个调用是查看evaluate
方法,查看它是否在当前调用活动中,如下所示:
Java代码:
public class MyActivity extends Activity {
Button button;
TextView log;
EditText field;
...
...
@Override
public void onCreate(Bundle savedInstanceState) {
button = (Button) new Button(this);
log = (TextView) findViewById(R.id.display);
field = (EditText) findViewById(R.id.guess);
...
...
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
evaluate(v);
}
});
}
...
...
// **evaluate** is visible(public) and
// within the same activity where the **button** is
public void evaluate(View v) {
...
...
}
}
`您是否从项目中导入了R
类,而不是android.R
?您是否检查了Eclipse
中的Problems
视图?在Button=(Button)视图中,当您遇到错误时,也会发布日志代码>?@Luksprog所有我的错误都显示为来自MainActivity.java,因为R不存在generated@Squonk这就是从注册的onClick方法传入的内容。您可以注册一个方法,使用onClick
属性来处理该按钮的单击,所以它是正确的。@VinsonCai我得到的唯一错误是strings.xml中的一些完全不同的错误strings.xml中的错误将阻止它生成R.java,因此它可能不是无关的。等等,您能在求值方法中使用'findviewbyd()'吗?
public class MyActivity extends Activity {
Button button;
TextView log;
EditText field;
...
...
@Override
public void onCreate(Bundle savedInstanceState) {
button = (Button) new Button(this);
log = (TextView) findViewById(R.id.display);
field = (EditText) findViewById(R.id.guess);
...
...
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
evaluate(v);
}
});
}
...
...
// **evaluate** is visible(public) and
// within the same activity where the **button** is
public void evaluate(View v) {
...
...
}
}