在我的例子中编辑r.java安全吗?

在我的例子中编辑r.java安全吗?,java,android,r.java-file,Java,Android,R.java File,我有一行代码: Button button = (Button) findViewById(R.id.view); 这会产生以下错误: id cannot be resolved or is not a field 这个错误是合乎逻辑的,因为我还没有在R.java中需要Id的东西,所以缺少Id。这将在我执行代码时生成(因为我在onCreate()上创建按钮,并且它们获得Id)。但在解决问题之前,Eclipse不会让我运行。那么,将这行代码添加到R.java中是否安全呢 public stat

我有一行代码:

Button button = (Button) findViewById(R.id.view);
这会产生以下错误:

id cannot be resolved or is not a field
这个错误是合乎逻辑的,因为我还没有在R.java中需要Id的东西,所以缺少Id。这将在我执行代码时生成(因为我在onCreate()上创建按钮,并且它们获得Id)。但在解决问题之前,Eclipse不会让我运行。那么,将这行代码添加到R.java中是否安全呢

public static final class id {
}

或者可能还有另一个解决方案?

没有。您添加到R.java的任何内容都将在下次构建时被删除。这是一个自动生成的文件。

如果在创建时在
中创建按钮,它们不会添加到资源中。从您构建APK的那一刻起,资源是固定的


当然,如果您创建了按钮,那么您已经拥有了
按钮
对象,并且不需要在参考资料中查找它了?

您不能附加R.java。但是,如果您想添加任何内容,您可以创建自己的另一个文件(如Rcustom.java),将您的内容保存在其中,并在使用它的任何地方导入。

findViewById()
在引用通常由
setContentView()
设置或使用
LayoutInflater
膨胀的XML布局时使用

因此,如果在main.xml布局中有一个id为“view”的
按钮,您可以在
活动中执行以下操作:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button button = (Button) findViewById(R.id.view);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // Respond to click here 
        }
    }); 
}

您不能编辑R.java。您编辑的任何内容都将被覆盖。