在我的情况下编辑r.java是否安全?

时间:2012-01-21 23:45:01

标签: 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 static final class id {
}

或者可能还有另一种瞎子?

4 个答案:

答案 0 :(得分:1)

如果您在onCreate中创建按钮,则不会将其添加到资源中。从您构建APK的那一刻起,资源就会得到修复。

当然,如果您创建了按钮,那么您已经拥有Button对象,无论如何都不需要在资源中查找它?

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你不能追加R.java。但是如果你想要添加任何东西,你可以创建自己的另一个文件(比如Rcustom.java),保留你的东西并将它导入到你使用它的任何地方。

答案 3 :(得分:0)

当您引用通常由findViewById()设置或用setContentView()充气的XML布局时,会使用

LayoutInflater

因此,如果您的main.xml布局中有Button,其ID为"请查看",您将在Activity中执行以下操作:

@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 
        }
    }); 
}