Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么我的R.java文件没有从XML文件生成显示id或按钮id?_Android_Xml_Eclipse_Android Layout_R.java File - Fatal编程技术网

Android 为什么我的R.java文件没有从XML文件生成显示id或按钮id?

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

我已经在谷歌上搜索并阅读了几个堆栈溢出的答案,我很确定问题出在我的布局文件上。我还清理了我的项目,因此删除了我的R.java文件,但我认为在我发现错误后,它将自动生成

这是我的XML代码

<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) { 
        ...
        ...

    }
}