簡體   English   中英

EditText-不能在原始類型int上調用getText()

[英]EditText -Cannot invoke getText() on the primitive type int

我是android編程的新手。 我想在edittext中設置x的值並通過edittext在烤面包上顯示它。主要問題在x.getText()中,它給出了一個錯誤:無法在基本類型int上調用getText()。 誰能幫我一個急事..?

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();

}

試試這個代碼:
在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類型的。 這樣你就出錯了。

你應該使用

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

代替

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

問題

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

你在這一行有錯誤

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

因為x是Integer,所以沒有用於Integer的getText()方法

你用這個

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

要么

final int y = x;

edi.setText(" "+y);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM