因此,我需要为两者添加layout_gravityTextViews
的Buttons并获取它们的唯一 ID。有没有办法从代码中添加一个 id?
to my code **inside** the code itself like, dynamically adding them inside a
loop. My problem is setting the
更新
TextViews
我需要and的 idButtons
才能进入R.id
文件夹,这可能吗?
因此,我需要为两者添加layout_gravityTextViews
的Buttons并获取它们的唯一 ID。有没有办法从代码中添加一个 id?
to my code **inside** the code itself like, dynamically adding them inside a
loop. My problem is setting the
更新
TextViews
我需要and的 idButtons
才能进入R.id
文件夹,这可能吗?
不,不可能在运行时生成相对于 R.id 的其余部分仍然被认为是唯一的 id,抱歉。您可以使用该方法在 Java 代码中将视图的 ID 设置为您喜欢的任何值setId()
,但是,这里有一些您可能会考虑的选项:
view.setId( view.hashCode() )
生成更唯一的 ID。这就是RadioGroup
它的孩子没有 ID 时的情况。res/values/ids.xml
您可以通过创建(请参阅 SDK 文章)提前生成未附加到视图的 R.id 值。然后可以view.setId(R.id.xxx)
在运行时添加这些。就您的layout_gravity
问题而言,这可能是因为以layout_
XML 为前缀的值LayoutParams
是实际视图的属性,而不是实际视图的属性。您需要将该值添加到LayoutParams
对象并在新视图上设置这些参数,例如:
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);
高温高压
// 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
}
});
你可以像这样的任何组件。