0

金額の計算中にエラーが発生し、name、qty、price の 3 つのフィールドで、名前と価格が最初のアクティビティから取得され、これを介して qty edittext を使用してユーザーが qty を入力できるようになりましたが、エラーが発生しました:-
最終的なローカル変数 qty、price、total を割り当てることはできません囲み型androidで定義されているため、ソースコードを参照してください

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);
    final TextView txtCost = (TextView) findViewById(R.id.txtCost);
    final EditText txtQty=(EditText)findViewById(R.id.txtQty);
    final double price = Double.parseDouble(txtCost.getText().toString());
    final double qty = Double.parseDouble(txtQty.getText().toString());
    final double total=0;


    Button btnClose = (Button) findViewById(R.id.btnCalculate);
    final 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();
        //Getting Error Here
               //the final local variable qty price total 
               //cannot be assigned since it is defined 
               //in an enclosing type android               
        qty=Double.parseDouble(txtQty.getText().toString());
        price=Double.parseDouble(txtCost.getText().toString());
        total=qty*price;
        txtResult.setText(Double.toString(total));


        }
    });

}
}
4

1 に答える 1

0

onCreate() で変数 qty と price を定義する必要はありません。OnClickListener でそれらを定義するだけで、すべてうまくいきます。最終変数は、設定後に変更することはできません。それが彼らが最終的な理由です。

于 2012-09-26T06:13:50.790 に答える