【问题标题】:Android error java.lang.NumberFormatExceptionAndroid 错误 java.lang.NumberFormatException
【发布时间】:2017-03-12 11:05:35
【问题描述】:

完全错误

FATAL EXCEPTION: main

              Process: com.intent.explicitintent, PID: 9871
              java.lang.NumberFormatException: For input string: "android.support.v7.widget.AppCompatEditText{c41d17d VFED..CL. ........ 80,80-400,148 #7f0d0075 app:id/numberOne}"
                  at java.lang.Integer.parseInt(Integer.java:521)
                  at java.lang.Integer.parseInt(Integer.java:556)
                  at com.intent.explicitintent.MainActivity.add(MainActivity.java:40)
                  at com.intent.explicitintent.MainActivity$1.onClick(MainActivity.java:28)
                  at android.view.View.performClick(View.java:5610)
                  at android.view.View$PerformClick.run(View.java:22265)
                  at android.os.Handler.handleCallback(Handler.java:751)
                  at android.os.Handler.dispatchMessage(Handler.java:95)
                  at android.os.Looper.loop(Looper.java:154)
                  at android.app.ActivityThread.main(ActivityThread.java:6077)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

我正在尝试添加简单的加法。但它不起作用。 我有两个 EditText 字段和一个按钮。我希望在 TextView 中单击按钮时将结果显示在另一个活动中

这是我的代码

活动一。

public class MainActivity extends AppCompatActivity {
EditText oneNumber;
EditText secondNumber;
Button button;

int e;
int b;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    oneNumber = (EditText) findViewById(R.id.numberOne);
    secondNumber = (EditText) findViewById(R.id.numberTwo);
    button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            add(v);
        }
    });


}


public void add(View view) {


    int a = Integer.parseInt(String.valueOf(oneNumber));
    int b = Integer.parseInt(String.valueOf(secondNumber));
    int result = a + b;
    Intent intent = new Intent();
    intent.putExtra("add", result);
    intent.setClass(MainActivity.this, AnotherActivity.class);
    startActivity(intent);





}

}

第二个活动

public class AnotherActivity extends AppCompatActivity {
TextView total;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_another);
    total = (TextView) findViewById(R.id.Total);
    Bundle extras = getIntent().getExtras();
    String result = extras.toString();
    total.setText(result);






  }

}

我想我搞砸了从 EditText 获取整数并在另一个活动的 textView 中获取结果

有什么帮助吗?

【问题讨论】:

    标签: java android


    【解决方案1】:

    问题就在这里:

    int a = Integer.parseInt(String.valueOf(oneNumber));
    int b = Integer.parseInt(String.valueOf(secondNumber));
    

    应该是:

     int a = Integer.parseInt(oneNumber.getText().toString());
    int b = Integer.parseInt(secondNumber.getText().toString());
    

    oneNumber 是一个 Editext 。你需要从中获取字符串

    在您的第二个活动中使用以下方法获取结果:

        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_another);
        total = (TextView) findViewById(R.id.Total);
        //get result
        Intent intent = getIntent();
        int result = intent.getIntExtra("add", 0);
        total.setText(String.valueOf(result));
    
      }
    

    【讨论】:

    • 如果您已经拥有来自toString() 的字符串,String.valueOf 是多余的。
    • 还是不行。在第二个活动中,我应该怎么写才能得到号码?
    • 要使用捆绑传递数据,请参阅answer
    【解决方案2】:

    String.valueOf(oneNumber)oneNumber.toString() 基本相同,但(我相信您已经知道)与框中的文本不同。

    也许你的意思是改用oneNumber.getText().toString()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 2018-01-29
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多