在for循环中,我将屏幕上的按钮并设置其ID为如何引用以编程方式设置的对象的ID?
LinearLayout layout = (LinearLayout) findViewById(R.id.linear_layout_tags);
layout.setOrientation(LinearLayout.VERTICAL);
Button btn = null;
for (int i = 0; i < buttons_in_row; i++) {
LinearLayout row = new LinearLayout(this);
row.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
for (int j = 0; j < buttons_in_row; j++) {
btn = new Button(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f);
params.setMargins(5, 5, 5, 5);
btn.setLayoutParams(params);
btn.setText("B " + (j + 1 + (i * buttons_in_row)));
btn.setId(j + 1 + (i * buttons_in_row));
btn.setWidth(width/buttons_in_row);
btn.setHeight(width/buttons_in_row);
btn.setBackgroundResource(R.drawable.button);
GradientDrawable drawable = (GradientDrawable) btn.getBackground();
drawable.setColor(Color.parseColor("#" + colors[random_color][0]));
btn.setOnClickListener(this);
//Log.i("btn.getsize", btn.getWidth() + ", " + btn.getHeight());
row.addView(btn);
}
layout.addView(row);
}
Button b = (Button) layout.findViewById(2);
在循环我要挑一个按钮(如第2号)的结束,并给它一个不同背景颜色。
我尝试了这些
Button b = (Button) findViewById(2);
btn.getId(2);
我怎样才能做到这一点?
也许使用阵列来存储它们,并从那里获得他们喜欢按钮[2]? – CDrosos
你可以通过这种方式获得重复的值 - 如果你将'i,j'从0循环到5并且你连续有3个按钮,你会得到一些值两次 - 4,5,10 ... – TDG
我是没有获得重复的值 – erdomester