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

时间:2012-11-20 04:43:45

标签: 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;

}

2 个答案:

答案 0 :(得分:2)

R.java中的ID是在构建时从.xml文件的内容生成的。 R.java不能手动修改,也不能在运行时修改。

如果需要,可以通过在res/values中的某个文件中声明id resource来定义{{3}}:该文件可以有任何名称:

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

您始终可以通过调用setId(int)来设置广告中视图的ID(正如您所做的那样)。

编辑:如果要在通话中使用常量,例如

nBtnLayout.setId(nBtnLayoutList);

然后你需要在诸如

之类的调用中使用相同的常量
nBtnLayout = (LinearLayout)findViewById(nBtnLayoutList); // NOT R.id.nBtnLayoutList

答案 1 :(得分:0)

- nBtnLayoutList是对LinearLayout的引用。

- 您可以通过LinearLayout方法传递整数来将ID设置为setId()

<强>例如

nBtnLayout.setId(1);