Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.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、 id未重新生成_Android_Button - Fatal编程技术网

Android r、 id未重新生成

Android r、 id未重新生成,android,button,Android,Button,我试图创建一个简单的按钮示例,但添加以下代码时: mButton=按钮findViewByIdR.id.button1 它不会更新我的R.id文件。我已经尝试了所有的方法,包括确保启用自动构建、清理项目和更新SDK。这在1.6和2.2项目中都会发生 下面是完整代码的外观: import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; p

我试图创建一个简单的按钮示例,但添加以下代码时:

mButton=按钮findViewByIdR.id.button1

它不会更新我的R.id文件。我已经尝试了所有的方法,包括确保启用自动构建、清理项目和更新SDK。这在1.6和2.2项目中都会发生

下面是完整代码的外观:

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

public class NewTest extends Activity {

 Button myButton;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myButton = (Button) findViewById(R.id.button1);
    }
}

由于您使用的是基于XML的布局,请确保main.XML文件中有android:id属性,其值为@+id/button1……

findViewById正在R.id文件中查找您引用的位置

您的代码不会导致文件更新,因为它只查找按钮

在布局中创建按钮将导致R.id文件更新

<Button
    android:id="@+id/button1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Button One"/>

由于您在context中使用findviewbyd,并且当前context的视图是main.xml,因此上面的按钮示例需要位于main.xml文件中。否则,如果在另一个.xml布局中有另一个具有相同名称的按钮,则该条目将出现在R.id文件中,但代码会给您一个空指针异常,因为按钮在您试图引用它的上下文中不存在。

当您仅引用现有id时,它不会更新生成的R.java文件


它仅在您添加资源时更新。button01必须已经存在于一个.xml文件中,否则您的'findViewByIdR.id.button1'将无法编译。

请确保在活动中为应用程序的R类正确导入:

import your.app.package.R;

更新:仅当您的Activity类不在.app.package包的根目录下时,才需要此隐式导入。

在尝试遵循NotePadV1教程时,使用API 19并将布局编辑器设置为API 15时,我遇到了相同的问题。我无法从notes_row.xml文件中编译R.id.text1


最初,我只是将文本粘贴到xml文件中以生成布局。在尝试删除R和Clean失败后,我尝试完全删除notes\u行布局。当我重新创建布局时,我使用图形界面添加TextView对象的属性,只是Id@+Id/text1、宽度和高度。然后我做了一个清理和编译。它起作用了。

在使用R.id之前保存您的项目。有些东西很可能是您的一个XML布局有错误,请将其发布以进行检查,但在执行此操作之前,请尝试清理项目,在eclipse中转到,project->clean->select project->clean。这不是它的工作方式。你不能像这样导入R,否则它根本不起作用。好吧,如果我注释掉R导入,那么我的按钮findViewByIdR.id.acceptBtnTop将停止工作。因此,我确信如果不导入自动生成的R类,上述代码将无法工作。由于主帖子中的代码不包含R导入,我建议检查它。哦,我的错误。我以为你在做导入android.R。因为那样不行。至于以上,这是没有必要的。您不需要在包中导入类。我不能改变我的反对票,除非你编辑question@Falmarri当前位置他现在编辑了答案,所以你可以更改投票@阿希米德:如果你需要在评论中引起别人的注意,请使用@user。为了清楚起见,我删除了布局,并重新创建了它。