所以我需要为TextViews
layout_gravity`添加和
to my code **inside** the code itself like, dynamically adding them inside a
按钮loop. My problem is setting the
,并为它们添加唯一ID。有没有办法在代码中添加id?
更新
我需要TextViews
和Buttons
的ID进入R.id
文件夹,是否可能?
答案 0 :(得分:2)
// 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
}
});
你可以使用这些组件。
答案 1 :(得分:2)
不,不可能在运行时生成仍然被认为与R.id其余部分唯一的ID,抱歉。您可以使用setId()
方法将视图的ID设置为Java代码中您喜欢的任何值,但是,以下是您可能会考虑的一些选项:
view.setId( view.hashCode() )
生成更多唯一ID。这是RadioGroup
当孩子没有身份证时所做的事情。res/values/ids.xml
(see SDK article)提前生成未附加到视图的R.id值。然后可以在运行时使用view.setId(R.id.xxx)
添加这些内容。就layout_gravity
问题而言,这可能是因为XML中以layout_
为前缀的值为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