В настоящее время я работаю над проектом в firebase, и мне было интересно, как умножить значение, пока кнопка увеличивается. Например, у меня есть это изображение

На этом изображении, если я нажму кнопку +, количество заказов будет равно 1, и оно будет увеличиваться, пока я не нажму кнопку -. Внизу есть значение 1,00. Например, каждый раз, когда кнопка нажимается, она становится равной 1, а также умножается текстовое представление, равное 1,00. Затем, если кнопка увеличивается, это будет 2x1,00, что равно 2,00.
Это код, который я сделал до сих пор
public class Detailsoforder extends AppCompatActivity {
private static final String TAG = "AddToDatabase";
private static int click = 0;
private TextView titles;
private TextView increase;
private TextView Price;
private int count = 0;
//add Firebase
private FirebaseDatabase mFirebaseDatabase;
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;
private DatabaseReference myRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detailsoforder);
titles = findViewById(R.id.Order);
increase = findViewById(R.id.Increase);
Price = findViewById(R.id.Price);
String title = getIntent().getStringExtra("title");
String price = getIntent().getStringExtra("description");
titles.setText(title);
Price.setText(price);
mAuth = FirebaseAuth.getInstance();
mFirebaseDatabase = FirebaseDatabase.getInstance();
myRef = mFirebaseDatabase.getReference();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
Log.d(TAG, "onAuthStateChanged:signed_out");
}
}
};
// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Object value = dataSnapshot.getValue();
Log.d(TAG,"Value is"+value);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
public void onIncreaseClick(View view) {
String price = Price.getText().toString();
int result = Integer.parseInt(price);
count++;
increase.setText(String.valueOf(count));
Price.setText(String.valueOf(count*result));
}




Для этого вам не нужно использовать count vaariable и все остальное, вы можете сделать это непосредственно с текстовым представлением, как в этом примере.
Установите текст в текстовое представление 0 по умолчанию, затем получите этот текст при нажатии кнопки + и добавьте 1 в него и снова установите значение для текстового представления.
TextView textView = findViewById(R.id.textview);
textView.setText("0");
Button plus = findViewById(R.id.plus);
plus.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int number = Integer.parseInt(textView.getText().toString().trim());
number = number+1;
textView.setText(String.valueOf(number));
}
});
Теперь таким образом вы можете установить увеличенное значение для вашего текстового представления, пожалуйста, проверьте, будет ли оно работать, а затем спросите меня, нужна ли какая-либо другая помощь.
Сможет ли это умножить значение? что такое 1.00?
Да, конечно, и если это не сработает, скажи мне, что мы найдем другой способ сделать это.
Да, если мы хотим, мы тоже можем умножить значение, просто нужно изменить номер строки = число * 1
Хм, не знаю, правильно ли я делаю, но приложение вылетает
Вы покажете ошибку, которую вы сможете увидеть в журналах, чтобы я мог лучше понять это.
Спасибо за ответ. Теперь проблема решена. Я очень ценю ваш ответ.
Добро пожаловать Так же, как мой ответ
используйте этот код
Button plus = findViewById(R.id.plus);
plus.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// for orders numbers
int number = Integer.parseInt(ordersTextView.getText().toString().trim());
number = number+1;
ordersTextView.setText(String.valueOf(number));
// for total cost
Float cost = Float.parseFloat(costTextView.getText().toString().trim())*number;
costTextView.setText(String.valueOf(cost));
}
});
Для уменьшения, что я должен положить на него?
Для уменьшения просто замените number = number+1; по номеру = номер-1;
Хорошо, я попробую. Спасибо.