2011-07-12 39 views
2

我已經創建了一個按鈕數組,現在點擊每個按鈕我調用onClick方法...在該方法是可能的按鈕位置,即行和列位置..我寫的代碼是:如何找到按鈕陣列的行和列位置

代碼裝箱按鈕的陣列..

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方法我可以的的getText每個按鈕通過使用Button b=(Button)view ..所以有可能獲得行和列位置..特定按鈕..

回答

2

據我所知,行和列只是一個你的概念,因爲LinearLayout不提供像表對象配置或行/列查找方法。

你可以只使用Button.setTag()並保存jx值:

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(); 
..... 
+0

ButtonPosition P =(ButtonPosition).getTag();顯示錯誤這條線..恐怖是創建常量ButtonPosition – AndroidDev

+0

你能告訴我爲什麼這個錯誤是 – AndroidDev

+0

我能夠保存按鈕的位置,但我如何檢索這個位置點擊每個按鈕ons ..手段假設我點擊位置0,0按鈕,然後我得到的位置爲0 0; – AndroidDev