zoukankan      html  css  js  c++  java
  • 如何找按钮数组在布局中的横竖坐标位置?

    原问题来自于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();
     .....




     

  • 相关阅读:
    Android Studio的代码没错,运行时logcat会出现红色语句解决方法
    541. Reverse String II
    Android Studio快速自动生成findViewById
    你真的了解android的layout_weight属性吗?
    572. Subtree of Another Tree
    441. Arranging Coins(可用二分搜索)
    67. Add Binary
    58. Length of Last Word
    724. Find Pivot Index
    我爱java系列--【加密算法的介绍】
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3003943.html
Copyright © 2011-2022 走看看