1

最初のアクティビティから別のアクティビティにアイテム名と価格を取得する必要があるアプリケーションを作成していますが、それを行うことができますが、2番目のアクティビティでは、ユーザーが数量を数字で入力できるようにし、ユーザーがボタンをクリックして表示するたびに表示しTextViewます合計金額ですが、アイテムの合計金額を計算できません。

これは非常に簡単な作業であることはわかっていますが、この行をボタンに書き込んでいるときにエラーが発生しますonClick()

txtResult=txtCost*txtQty

ここに 2 番目のアクティビティ コードを配置しています。

これを修正してください:-

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 オブジェクトです。オブジェクトに対して計算を行うことはできません。テキストビューの値を整数に取得してから、乗算を試みます。

必要な変数のタイプ (integer、float、double) に応じて、次のようにします。

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 に答える