无结果的android app..calculator总是给0

时间:2012-03-23 18:18:40

标签: android

我开发了一个应用程序,其中微调器包含add,sub,mul& div ...但结果始终为零。当点击按钮时,我如何开发应用程序解决的计算取决于微调器的选定值。代码低于::

public void Select(View view)
    {
        TextView txt1=(TextView)findViewById(R.id.editText1);
        TextView txt2=(TextView)findViewById(R.id.editText2);

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

        Spinner spin1=(Spinner)findViewById(R.id.spinner1);
        String spin_value= spin1.getItemAtPosition(spin1.getSelectedItemPosition()).toString();

        if(spin_value=="Add")
        {
            int z=x+y;
            String addvalue=String.valueOf(z);
            Toast.makeText(this, addvalue, Toast.LENGTH_LONG).show();
        }
        else if (spin_value=="Sub") 
        {
            int p=x-y;
            String subvalue=String.valueOf(p);
            Toast.makeText(this, subvalue, Toast.LENGTH_LONG).show();
        }
        else if (spin_value=="Mul") 
        {
            int k=x*y;
            String mulvalue=String.valueOf(k);
            Toast.makeText(this, mulvalue, Toast.LENGTH_LONG).show();
        }
        else
        {
            int g=x/y;
            String divvalue=String.valueOf(g);
            Toast.makeText(this, divvalue, Toast.LENGTH_LONG).show();
        }
    }
}   

1 个答案:

答案 0 :(得分:0)

Bob Kaufman的评论是正确的。根据您所做的比较,您正在落入else声明。要比较Java中的字符串,您应该使用equals(Object o)equalsIgnoreCase方法,而不是==,除非您想确定被比较的字符串是否是同一个对象。

最重要的是,由于我们无法看到您正在使用的getItemAtPosition类型,因此SpinnerAdapter返回的内容并不十分清楚。因此,首先进行String比较可能不合适。

就像Bob一样,我怀疑你因为整数除法而得到0。如果你把txt1中的100,比如40,txt2,我猜你的Toast会读2