0

我有这行代码:

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 {
}

或者也许还有另一个sloution?

4

4 回答 4

1

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

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

于 2012-01-21T23:51:24.527 回答
0

findViewById()当您引用通常由 设置setContentView()或扩展的 XML 布局时使用LayoutInflater.

因此,如果您Button的 main.xml 布局中有一个 id 为“view”的,您将在您的中执行以下操作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 
        }
    }); 
}
于 2012-01-22T03:14:01.743 回答
0

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

于 2012-01-21T23:46:27.617 回答
0

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

于 2012-01-21T23:53:25.070 回答