【问题标题】:EditText -Cannot invoke getText() on the primitive type intEditText - 不能在原始类型 int 上调用 getText()
【发布时间】:2014-08-27 04:17:50
【问题描述】:

我是安卓编程新手。我想在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();

}

【问题讨论】:

  • 调用它有什么错误?String s= edi.getText().toString();?
  • 你的问题是什么?
  • 你的意思是edi.getText().toString()
  • 我的问题是 x.getText() 给出错误....如何将 x 的值传递给 editext
  • xint,是原始类型并且没有getText()。你的意思是edi.getText().toString()

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


【解决方案1】:

试试这个代码:
在 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 类型。所以你得到了一个错误。

【讨论】:

    【解决方案2】:

    你应该使用

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

    而不是

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

    【讨论】:

      【解决方案3】:

      问题

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

      【讨论】:

        【解决方案4】:

        你在这一行有错误

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-11
          • 2018-11-03
          • 2012-04-15
          • 2014-05-19
          • 2023-03-17
          • 1970-01-01
          相关资源
          最近更新 更多