EditText - 不要在基本类型int上调用getText()

时间:2014-08-27 04:17:50

标签: java android eclipse android-layout android-activity

我是Android编程新手。我想在edittext中设置x的值,并通过edittext在toast上显示它。主要问题在于x.getText()。它给出了一个错误无法在基本类型int上调用getText()。 PLZ任何人都可以帮助我紧急..?

Button butt;
EditText edi;
final int x=10;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    edi=(EditText)findViewById(R.id.ed);
    final int y = Integer.parseInt(x.getText().toString());
    edi.setText(" "+y);
    butt=(Button)findViewById(R.id.but);
    butt.setOnClickListener(this);
}
@Override
public void onClick(View v) {

    String s= edi.getText().toString();

    Toast.makeText(this, ""+s, 0).show();

}

4 个答案:

答案 0 :(得分:2)

试试这段代码:
在oncreate方法:

    edi=(EditText)findViewById(R.id.ed);
    final int y = x;
    edi.setText(" "+y);
    butt=(Button)findViewById(R.id.but);
    butt.setOnClickListener(this);

获取错误的原因是您尝试将int转换为int实际上函数Integer.parseInt(String s)用于将字符串转换为int。在您的情况下它是int类型。所以你得到了一个错误。

答案 1 :(得分:0)

你应该使用

final int y = Integer.parseInt(edi.getText().toString());

而不是

final int y = Integer.parseInt(x.getText().toString());

答案 2 :(得分:0)

<强>问题

final int y = Integer.parseInt(x.getText().toString());    // delete this line, getText() is used on objects, to fetch the text from it. 

更改

edi.setText(" "+y);

edi.setText(" "+x);

而不是" " +,使用String.valueOf(int)是一种很好的做法。

edi.setText(String.valueOf(x));

答案 3 :(得分:0)

你在这一行得到错误

final int y = Integer.parseInt(x.getText().toString());

因为x是整数,整数没有getText()方法

你使用这个

edi.setText(" "+x);
final int y = Integer.parseInt(edi.getText().toString());

final int y = x;

edi.setText(" "+y);