如何在onClick方法中获取按钮名称

时间:2013-01-08 10:46:07

标签: android

如何在onClick方法内按下文本按钮。 我不能使用变量,因为它会改变。

  Button[] mButtonsArray = new Button[MyArrayList.size()];
        for (Button b : mButtonsArray) 
        {
b = new Button(this);
            b.setText("name");
            b.setOnClickListener(
                    new OnClickListener() 
                    {
                        @Override
                        public void onClick(View arg0) 
                        {
                            MyClass.MyMethod(ButtonName);
                        }
                });
}

7 个答案:

答案 0 :(得分:4)

在onclick方法中使用它。

((Button) arg0).getText().toString();

答案 1 :(得分:1)

为什么不使用

b.setOnClickListener(
                    new OnClickListener() 
                    {
                        @Override
                        public void onClick(View arg0) 
                        {
                            MyClass.MyMethod(((Button) arg0).getText().toString());
                        }
                });

这样很简单。

答案 2 :(得分:0)

您可以使用setTaggetTag ...

Button[] mButtonsArray = new Button[MyArrayList.size()];
    for (Button b : mButtonsArray) 
    {
b = new Button(this);
        b.setText("name");
        b.setTag("name");
        b.setOnClickListener(
                new OnClickListener() 
                {
                    @Override
                    public void onClick(View arg0) 
                    {
                        MyClass.MyMethod((String)arg0.getTag());
                    }
            });
}

答案 3 :(得分:0)

您可以在这里使用setTag()getTag()

b.setTag("name");

要获取它,

  b.setOnClickListener(
     new OnClickListener() 
    {
       @Override
        public void onClick(View arg0) 
        {
            String name = (String)arg0.getTag();
        }
    });

答案 4 :(得分:0)

只需使用此代码:

Button[] mButtonsArray = new Button[MyArrayList.size()];
        for (Button b : mButtonsArray) 
        {
b = new Button(this);
            b.setText("name");
            b.setOnClickListener(
                    new OnClickListener() 
                    {
                        @Override
                        public void onClick(View arg0) 
                        {
                            Button b=(Button)arg0;
                            name=b.getText();
                        }
                });
}

答案 5 :(得分:0)

b.setOnClickListener(
         new OnClickListener() {
              @Override
              public void onClick(View arg0) {
                   String name = ((Button) arg0).getText().toString();
              }
});

答案 6 :(得分:0)

你可以通过在arg0上使用getText()将它转换为如下所示的按钮类型来获得。

   b.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View arg0) 
 {
  Button btn = (Button)arg0;
  if(btn != null)
MyClass.MyMethod(btn.getText());
  }

});