【问题标题】:Calculation with two Strings, Android用两个字符串计算,Android
【发布时间】:2013-04-11 15:12:37
【问题描述】:

我正在尝试使用 Eclipse 为 Android 创建一个计算器。这是我的函数“cal”的代码,单击按钮时会执行“cal”,但是单击按钮会关闭应用程序,我尝试了另一个具有不同功能的按钮,它工作正常。谁能指出我犯的错误?

      public void cal( View view ){
            EditText op = (EditText) findViewById(R.id.editText2);
            EditText n1 = (EditText) findViewById(R.id.editText1);
            EditText n2 = (EditText) findViewById(R.id.editText3);
            EditText res = (EditText) findViewById(R.id.textView1);

             String sn1 = n1.getText().toString();
             String sn2 = n2.getText().toString();
             String sres;
             String sop;

            int in1 = Integer.parseInt(sn1);
            int in2 = Integer.parseInt(sn2);
            int ires;


                 sop = op.getText().toString();
                     if(sop == "+"){
                                  ires = in1 + in2;
                                  sres = Integer.toString(ires);
                                  res.setText(sres);

        }
}

【问题讨论】:

  • 你有什么例外吗?您的堆栈跟踪(如果有)会有所帮助。
  • 你能发个logcat吗?
  • 我的猜测是Views 之一是null。确保您已正确命名所有这些,并且您已使用适当的布局调用 setContentView()
  • 你说编辑文本但指的是 textview,再次检查你的 res 编辑文本或者我猜它应该是 textview?

标签: java android string integer


【解决方案1】:

这方面也不例外。

我认为您忘记设置导致您的应用程序强制关闭的活动布局。

这里有问题

EditText res = (EditText) findViewById(R.id.textView1);

您确定布局中的 editText 名称是 textView1

如果是 textView 则这样做。

TextView res = (TextView) findViewById(R.id.textView1);

【讨论】:

  • 哦该死的......不......那是一个TextView......我以前使用的是一个EditText..这应该可以解决问题......
  • @Rohanchrome 让我知道是否仍有问题。如果它解决了您的问题,请接受答案。
  • 我得到了它的工作谢谢! :) 但是 if 构造由于某种原因不起作用... Edittext2 值为“+”但 if 构造中的代码块没有运行... :/
猜你喜欢
  • 2014-11-13
  • 1970-01-01
  • 2019-11-15
  • 2015-07-08
  • 2016-05-25
  • 2020-03-20
  • 2016-11-22
  • 1970-01-01
相关资源
最近更新 更多