我正在尝试通过创建计算器应用来学习Android。我有Ids button0
到button9
的按钮。单击按钮时,它们的值应添加到textViewAbove,但我似乎无法将整数转换为字符串。我觉得Android工作室将我的toString()
方法设为integer.toString()
类型。
代码:
int[] buttonId = {R.id.button0, R.id.button1, R.id.button2, R.id.button3, R.id.button4,
R.id.button5, R.id.button6, R.id.button7, R.id.button8, R.id.button9};
Button[] bt = new Button[10];
for (int i = 0; i < 10; i++) { //If this doesn't work then do it separately.
final int I = i;
bt[I] = (Button) findViewById(buttonId[I]);
bt[I].setOnClickListener(
new Button.OnClickListener() {
public void onClick(View v) {
textViewAbove.append(toString(I));
//Enter action methods here.
}
}
);
}
错误:
Error:(111, 50) error: method toString in class Object cannot be applied to given types;
required: no arguments
found: int
reason: actual and formal argument lists differ in length
请注意,代码位于onCreate
类的MainActivity
方法内。
答案 0 :(得分:3)
您正在尝试调用String toString()
的匿名子类的方法Button.OnClickListener
。此方法不带参数,因此当您尝试为其提供int
参数时,它会抱怨。
您应该调用其他接受toString
(或int
)参数的Integer
方法,例如Integer.toString(int)
。
答案 1 :(得分:1)
您应该使用Integer.toString(I);
答案 2 :(得分:1)
toString
方法继承自Object
类,不接受任何参数。
相反,您可以使用隐式转换,例如textViewAbove.append(""+I);
或者更有利的是textViewAbove.append(String.valueOf(I));
答案 3 :(得分:0)
将您的int I
替换为
final String I = i +"";
并删除toString()
方法,只需使用
textViewAbove.append(I);