我正在制作一个应用程序,我必须从第一个活动到另一个活动获取项目名称和价格,我能够这样做,但在第二个活动中,我允许用户将数量放入数字,每当用户点击按钮时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;
}
});
}
}
答案 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项更改。
同时创建txtCost和txtQty全局变量。
这两个变量都不能直接相乘。而是做这样的事情。
double cost = Double.parseDouble(txtCost.getText().toString());
double qty = Double.parseDouble(txtQty.getText().toString());
txtResult = cost * qty ;