ボタン配列のレイアウト内の縦横座標位置はどうやって探しますか?
1971 ワード
元の問題はCSDNクイズチャンネルから来ました.より多くの解決策は下記の通りです.http://ask.csdn.net/questions/1964.
問題の説明:
ボタン配列を作成しました.各ボタンを押すとオンロックメソッドを呼び出します.その方法では、ボタンの位置、例えば行と列の位置をどうやって取得しますか?buttons配列を作成:
ソリューション:
問題の説明:
ボタン配列を作成しました.各ボタンを押すとオンロックメソッドを呼び出します.その方法では、ボタンの位置、例えば行と列の位置をどうやって取得しますか?buttons配列を作成:
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
各ボタンのテキストを取得します.ボタン配列のレイアウト内の縦横座標位置はどうやって探しますか?ソリューション:
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();
.....