在onClick期间获取数组按钮的数组位置

时间:2014-03-19 08:26:33

标签: android eclipse button

我有一个大小可能超过20-30的按钮数组。我的简单问题是如何获取已单击的按钮的数组索引?例如,我点击了btnDisplay [8],然后应用程序将吐司" 8"。就如此容易。但我不知道如何检索阵列按钮的索引。

switch (clickedButton.getId())
{
  case R.id.Button01:
      // do something
      break;

  case R.id.Button01:
      // do something
      break;
}

如果我使用此代码,那么我必须编写20-30个案例。会有更好的解决方案吗?

我如何生成按钮数组

public class MainActivity extends Activity {
Button[] btnUpdate;

public void onCreate(Bundle savedInstanceState) {

//SOME CODE HERE

jsonParser = new JSONParser();
jObj = jsonParser.getJSONFromUrl(URL);

btnUpdate = new Button[jObj.length()];

for(int i=0;i<jObj.length();i++)
{
btnUpdate[i] = new Button(getApplicationContext());
btnUpdate[i].setText("Edit");
btnUpdate[i].setHeight(50);
}

3 个答案:

答案 0 :(得分:1)

试试这种方式

for (int i = 0; i < jObj.length(); i++) {
            btnUpdate[i] = new Button(getApplicationContext());
            btnUpdate[i].setText("Edit");
            btnUpdate[i].setHeight(50);
            btnUpdate[i].setTag(i); //ADD THIS LINE.
        }


void onClick(View v) {

        int index = (Integer) v.getTag();
        Toast.makeText(getApplicationContext(), "BtnClicked"+index, Toast.LENGTH_SHORT).show();

    }

答案 1 :(得分:0)

不知何故尝试使用btnDisplay.indexof();它在C#中工作我不确定Java

答案 2 :(得分:0)

尝试这样的事情

void onClick(View v)
{
   int index = 0;
   for (int i = 0; i < buttonArray.length; i++)
   {
      if (buttonArray[i].getId() == v.getId())
      {
         index = i;
  Toast.makeText(getApplicationContext(), "BtnClicked"+index, Toast.LENGTH_SHORT).show();
         break;
      }
   }


}