java - 如何将我在java类中创建的ID生成到r.java

标签 java android android-layout

我是 Android 编程新手。

我想知道是否可以将我在java类中创建的ID生成到r.java

我要生成的ID是nBtnLayoutlist。

public class classABC extends Activity {
    private int nBtnLayoutlist = 20;

    private OnClickListener onClick() {
        return new OnClickListener() {

            public void onClick(View v) {

            nBtnLayout = (LinearLayout)findViewById(R.id.nBtnLayoutList);

            }
        };
    }

    private LinearLayout newBtnLayout(){
    LinearLayout nBtnLayout = new LinearLayout(this);
    final LayoutParams lparams = new LayoutParams(LayoutParams.MATCH_PARENT,       LayoutParams.WRAP_CONTENT);
    nBtnLayout.setOrientation(LinearLayout.VERTICAL);
    nBtnLayout.setLayoutParams(lparams); 
    nBtnLayout.setWeightSum(100);
    nBtnLayout.setId(nBtnLayoutList);
    return nBtnLayout;

}

最佳答案

R.java 中的 ids 是在构建时根据 .xml 文件的内容生成的。 R.java无法手动修改,也无法在运行时修改。

如果需要,您可以定义 id resource通过在 res/values 中的某个文件中声明它(该文件可以具有任何名称):

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item
        type="id"
        name="id_name" />
</resources>

您始终可以通过调用 setId(int) 在布局中设置 View 的 ID(正如您已经在做的那样)。

编辑:如果您想在调用中使用常量,例如

nBtnLayout.setId(nBtnLayoutList);

那么您需要在调用中使用相同的常量,例如

nBtnLayout = (LinearLayout)findViewById(nBtnLayoutList); // NOT R.id.nBtnLayoutList

关于java - 如何将我在java类中创建的ID生成到r.java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13466723/

相关文章:

java - Commons VFS - 无法列出目录的内容

android - 如何在 Firebase 的评级栏中显示评级?

android - 如何在webview中获取缩放视口(viewport)的宽度和高度?

安卓滑出菜单

java - 如果 Swing 模型的 getter 不是线程安全的,您将如何处理它们?

java - BCC 收件人数量限制

android - BroadcastReceiver 会耗电吗?

android - 如何在android中的RecyclerView中填充数据?

java - Android 仅从纵向布局文件夹中获取 xml

java - 无法使用 selenium webdriver 3.0.1 单击注销链接