1

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

我知道这是非常简单的任务,但是在按钮中写下这一行时出现错误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

4 回答 4

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

于 2012-09-26T05:39:56.453 回答
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);
于 2012-09-26T05:36:45.863 回答
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);

   }
    });

}
}
于 2012-09-26T05:37:48.100 回答
-2

需要进行 2 项更改。

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

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

    double cost = Double.parseDouble(txtCost.getText().toString());
    double qty = Double.parseDouble(txtQty.getText().toString());
    
    txtResult = cost * qty ; 
    
于 2012-09-26T05:31:40.033 回答