如何在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);
}
});
}
答案 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)
您可以使用setTag
和getTag
...
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());
}
});