#android
Вопрос:
Я новичок в Android studio и создал 3 кнопки. Код 1 кнопки выглядит следующим образом,
lt;Button android:id="@ id/button2" android:layout_width="160dp" android:layout_height="120dp" android:layout_marginBottom="434dp" android:contentDescription="5" android:text="$5" android:textSize="70sp" android:onClick="addTotal" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.39" /gt;
MainActivity.java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Initialize buttons final Button button1 = findViewById(R.id.button1); final Button button2 = findViewById(R.id.button2); final Button button3 = findViewById(R.id.button3); final TextView totalAmt = findViewById(R.id.totalAmt); public void addTotal (View v) { // $2 button button1.setOnClickListener((View view) -gt; { // Update total amount double total = Double.parseDouble(totalAmt.getText().toString()) 2; String final_total = String.valueOf(total); totalAmt.setText(final_total); }); // $5 button button2.setOnClickListener((View view) -gt; { // Update total amount double total = Double.parseDouble(totalAmt.getText().toString()) 5; String final_total = String.valueOf(total); totalAmt.setText(final_total); }); // $8 button button3.setOnClickListener((View view) -gt; { // Update total amount double total = Double.parseDouble(totalAmt.getText().toString()) 8; String final_total = String.valueOf(total); totalAmt.setText(final_total); }); } } }
Назначение 3 кнопок состоит в том, чтобы добавить 2, 5, 8 к общему текстовому представлению
Что я делаю не так?
Спасибо!
Ответ №1:
Вам не нужно добавлять onClick
XML-файл. У вас неверное объявление в MainActivity. Скопируйте следующий код, теперь он будет работать правильно
xml
lt;Button android:id="@ id/button2" android:layout_width="160dp" android:layout_height="120dp" android:layout_marginBottom="434dp" android:contentDescription="5" android:text="$5" android:textSize="70sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.39" /gt;
MainActivity.java
public class MainActivity extends AppCompatActivity { Button button1, button2, button3; TextView totalAmt; double total = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Initialize buttons button1 = findViewById(R.id.button1); button2 = findViewById(R.id.button2); button3 = findViewById(R.id.button3); totalAmt = findViewById(R.id.totalAmt); totalAmt.setText("0"); addTotal(); } public void addTotal() { // $2 button button1.setOnClickListener((View view) -gt; { // Update total amount total = Double.parseDouble(totalAmt.getText().toString()) 2; String final_total = String.valueOf(total); totalAmt.setText(final_total); }); // $5 button button2.setOnClickListener((View view) -gt; { // Update total amount total = Double.parseDouble(totalAmt.getText().toString()) 5; String final_total = String.valueOf(total); totalAmt.setText(final_total); }); // $8 button button3.setOnClickListener((View view) -gt; { // Update total amount total = Double.parseDouble(totalAmt.getText().toString()) 8; String final_total = String.valueOf(total); totalAmt.setText(final_total); }); } }
Комментарии:
1. Да, это работает!! Спасибо вам за помощь!