方法toString不能应用于Android Studio中的给定类型错误

时间:2016-04-05 13:50:56

标签: java android

我正在尝试通过创建计算器应用来学习Android。我有Ids button0button9的按钮。单击按钮时,它们的值应添加到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方法内。

4 个答案:

答案 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);