我已经创建了一个按钮数组,现在点击我调用onClick方法的每个按钮...在该方法上可以使用按钮的位置,即行和列位置..我写的代码是:
crating代码按钮数组..
LinearLayout layoutVertical = (LinearLayout) findViewById(R.id.liVLayout);
LinearLayout rowLayout=null;
LayoutParams param = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT,1);
//Create Button
for (i = 0; i<6; i++)
{
rowLayout = new LinearLayout(this);
rowLayout.setWeightSum(7);
layoutVertical.addView(rowLayout,param);
for(j=0;j<7;j++)
{
pBtnDay[i][j]=new Button(this);
rowLayout.addView(pBtnDay[i][j],param);
pBtnDay[i][j].setOnClickListener(this);
}
}
return true;
onClick方法的代码
Button b = (Button)view;
txtDate.setText(b.getText());
boolean bStartDate=false;
现在在onclick方法中,我可以使用Button b=(Button)view
获取每个按钮的文本..所以是否可以获取该特定按钮的行和列位置..
答案 0 :(得分:2)
我可以理解行和列只是一个你的概念,因为LinearLayout不提供像对象处置或行/列查找方法的表。
您可以使用Button.setTag()
并保存j
和x
值:
class ButtonPosition {
int x,y;
public ButtonPosition(int x,int y){
this.x = x;
this.y = y;
}
}
......
for(j=0;j<7;j++){
pBtnDay[i][j]=new Button(this);
rowLayout.addView(pBtnDay[i][j],param);
pBtnDay[i][j].setOnClickListener(this);
//Save the position
pBtnDay[i][j].setTag(new ButtonPosition(i,j));
}
将查找位置放入onClick
方法
.....
Button b = (Button)view;
ButtonPosition p = (ButtonPosition)b.getTag();
.....