在代码中设置android文本视图和按钮
因此,我需要将在代码中设置android文本视图和按钮,android,android-layout,textview,android-button,Android,Android Layout,Textview,Android Button,因此,我需要将textview和按钮添加到我的代码**中**代码本身,就像在循环中动态添加它们一样。我的问题是为两者设置layou\u gravity`并获得唯一的id。有没有办法在代码中添加id 更新 我需要textview和按钮的id才能进入R.id文件夹,这可能吗 // sets button properties btn = new ImageButton(this); btn.setId(id); btn.setTag(Image_Name); btn
textview
和
按钮添加到我的代码**中**代码本身,就像在循环中动态添加它们一样。我的问题是为两者设置
layou\u gravity`并获得唯一的id。有没有办法在代码中添加id
更新
我需要textview
和按钮的id才能进入R.id
文件夹,这可能吗
// sets button properties
btn = new ImageButton(this);
btn.setId(id);
btn.setTag(Image_Name);
btn.setBackgroundColor(Color.TRANSPARENT);
btn.setAdjustViewBounds(true);
btn.setImageBitmap(bmp);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Implement Click Listener
}
});
您可以使用任何类似于这些的组件
您可以使用任何类似于这些的组件 不,很抱歉,在运行时无法生成相对于R.id的其余部分仍然被认为是唯一的id。您可以使用setId()
方法在Java代码中将视图的ID设置为您喜欢的任何值,但是,以下是一些您可能会考虑的选项:
将动态视图的ID设置为0、1、2、3甚至100、101、102、103等值。您可能已经注意到,R.ID生成的值始终以0x7F开头,因此您不太可能选择会发生冲突的值
使用视图的hashcode,一个laview.setId(view.hashcode())
来生成一个更唯一的ID。这就是RadioGroup的子对象没有ID时所做的
通过创建res/values/ids.xml
(),可以提前生成未附加到视图的R.id值。然后可以在运行时使用view.setId(R.id.xxx)
添加这些属性
就您的layout\u重力问题而言,这可能是因为XML中以layout\u
为前缀的值是LayoutParams
,而不是实际视图的属性。您需要将该值添加到LayoutParams
对象中,并在新视图(la:
Button button;
LinearLayout layout;
LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.gravity = Gravity.CENTER;
//Option #1 to add
layout.addView(button, lp);
//Option #2 to add
button.setLayoutParams(lp);
layout.addView(button);
HTH不,很抱歉,在运行时无法生成相对于R.id的其余部分仍然被认为是唯一的id。您可以使用setId()
方法在Java代码中将视图的ID设置为您喜欢的任何值,但是,以下是一些您可能会考虑的选项:
将动态视图的ID设置为0、1、2、3甚至100、101、102、103等值。您可能已经注意到,R.ID生成的值始终以0x7F开头,因此您不太可能选择会发生冲突的值
使用视图的hashcode,一个laview.setId(view.hashcode())
来生成一个更唯一的ID。这就是RadioGroup的子对象没有ID时所做的
通过创建res/values/ids.xml
(),可以提前生成未附加到视图的R.id值。然后可以在运行时使用view.setId(R.id.xxx)
添加这些属性
就您的layout\u重力问题而言,这可能是因为XML中以layout\u
为前缀的值是LayoutParams
,而不是实际视图的属性。您需要将该值添加到LayoutParams
对象中,并在新视图(la:
Button button;
LinearLayout layout;
LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.gravity = Gravity.CENTER;
//Option #1 to add
layout.addView(button, lp);
//Option #2 to add
button.setLayoutParams(lp);
layout.addView(button);
HTHbtn.setId(id)中的“id”字段是什么?我如何将id设置在我的R.id文件夹中?您可以选择id可以是任何在循环迭代时递增的整数。它不能在R.java文件中设置。否如果您要设置任何动态组件,它将不会在R.java中注册btn.setId(id)中的“id”字段是什么?如何将id设置在我的R.id文件夹中?您可以选择id可以是循环迭代时递增的任何整数。它不能设置在R.java文件中。否如果您想设置任何动态组件,它将不会在R.javaDuplicate中注册:更新:如果它们存在于资源文件夹中,则它们不会动态创建;它们已经存在了…根据答案和评论,告诉我们你在这里想要实现什么似乎是有益的。我无法想象为什么您需要在R.ID文件夹中注册ID,因为它通常在设计时使用,而不是在运行时使用,所以您如何知道要查找什么?复制:更新:如果它们存在于资源文件夹中,则不会动态创建它们;它们已经存在了…根据答案和评论,告诉我们你在这里想要实现什么似乎是有益的。我无法想象为什么您需要在R.ID文件夹中注册ID,因为它通常在设计时使用,而不是在运行时使用,那么您如何知道要查找什么呢?