首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

怎么找按钮数组在布局中的横竖坐标位置

2013-04-09 
如何找按钮数组在布局中的横竖坐标位置?原问题来自于CSDN问答频道,更多解决方案见:http://ask.csdn.net/qu

如何找按钮数组在布局中的横竖坐标位置?

原问题来自于CSDN问答频道,更多解决方案见:http://ask.csdn.net/questions/1964

问题描述:

我创建了一个按钮数组,当点击每一个按钮时都会调用 onClick 方法。在那个方法中,如何获得按钮的位置,比如行和列的位置?
创建 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(); .....




 

热点排行