![](/img/trans.png)
[英]Cannot invoke getText() and setText() on the primitive type int
[英]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.