无法计算整数,Android中的活动之间的总金额

时间:2012-09-26 05:26:06

标签: android android-intent android-emulator android-widget

我正在制作一个应用程序,我必须从第一个活动到另一个活动获取项目名称和价格,我能够这样做,但在第二个活动中,我允许用户将数量放入数字,每当用户点击按钮时TextView显示总金额,但无法计算项目的总金额。

我知道这是一项非常简单的任务,但我在按钮onClick()中写下这一行时遇到错误:

txtResult=txtCost*txtQty

这里我要放置第二个活动代码,

请纠正这个: -

public class SecondScreenActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.screen2);

    TextView txtName = (TextView) findViewById(R.id.txtName);
    TextView txtCost = (TextView) findViewById(R.id.txtCost);
    EditText txtQty=(EditText)findViewById(R.id.txtQty);
    Button btnClose = (Button) findViewById(R.id.btnCalculate);
    TextView txtResult = (TextView) findViewById(R.id.txtResult);

    Intent i = getIntent();
    // Receiving the Data
    String name = i.getStringExtra("name");
    String cost = i.getStringExtra("cost");

    // Displaying Received data
    txtName.setText(name);
    txtCost.setText(cost);

    // Binding Click event to Button
    btnClose.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            //Closing SecondScreen Activity
            //finish();
            txtResult=txtCost*txtQty;

        }
    });

}
}

4 个答案:

答案 0 :(得分:1)

你可以通过

来完成
int cost = Integer.parseInt(txtCost.getText().toString());
int qty =  Integer.parseInt(txtQty.getText().toString());
int result = cost*qty;

然后将此结果设置为txtResult

txtResult.setText(result+"");

或者您可以将int转换为String,然后应用setText

答案 1 :(得分:0)

   txtResult=txtCost*txtQty;

这些是TextView对象。你无法对物体进行数学运算。将textview的值转换为整数,然后尝试乘以。

执行类似的操作..取决于您想要的变量类型(整数,浮点数,双精度)。

int a = new Integer(txtCost.getText().toString());
int b = new Integer(txtQty.getText().toString());
int c = a * b;
txtResult.setText(d);

答案 2 :(得分:0)

为什么要在Textview

中乘以值
 btnClose.setOnClickListener(new View.OnClickListener() {

public void onClick(View arg0) {
Float f_name = new Float(name);
Float f_cost = new Float(cost);
Float f_result=f_name *f_cost ;
txtResult.setText(f_result);

   }
    });

}
}

答案 3 :(得分:-2)

需要进行2项更改。

  1. 同时创建txtCost和txtQty全局变量。

  2. 这两个变量都不能直接相乘。而是做这样的事情。

    double cost = Double.parseDouble(txtCost.getText().toString());
    double qty = Double.parseDouble(txtQty.getText().toString());
    
    txtResult = cost * qty ;