Я новичок в андроиде. Итак, я пытаюсь рассчитать цену чего-либо, используя EditText вместо ListView, и у меня есть кнопки увеличения и уменьшения, чтобы увеличить значение компонента EditText.
Так что кнопки увеличения и уменьшения работают нормально. Они уменьшают и увеличивают значение в EditText и прекрасно рассчитывают цену, но когда я набираю EditText вместо использования кнопок, введенное значение не используется.
Вот мой код.
XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/latte" />
<TextView
android:id="@+id/quantitytxt_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="Quantity ( Cup(s) )"
android:textAllCaps="true"
android:textColor="@android:color/white"
android:textSize="16sp" />
<Button
android:id="@+id/decrementButton"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_below="@id/quantitytxt_textview"
android:onClick="decrement"
android:text="-"
android:textSize="15sp" />
<EditText
android:id="@+id/quantity_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/quantitytxt_textview"
android:layout_toRightOf="@id/decrementButton"
android:padding="10dp"
android:inputType="text"
android:text="0"
android:textColor="@android:color/white"
android:textSize="16sp" />
<Button
android:id="@+id/incrementButton"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_below="@id/quantitytxt_textview"
android:layout_toRightOf="@id/quantity_textview"
android:onClick="increment"
android:text="+"
android:textSize="15sp" />
<TextView
android:id="@+id/pricetxt_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/quantity_textview"
android:padding="10dp"
android:text="Price (1 Cup = KES 5)"
android:textAllCaps="true"
android:textColor="@android:color/white"
android:textSize="16sp" />
<TextView
android:id="@+id/price_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/pricetxt_textview"
android:padding="10dp"
android:text="KES 0"
android:textColor="@android:color/white"
android:textSize="16sp" />
<Button
android:id="@+id/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/price_textview"
android:onClick="submitOrder"
android:text="Order"
android:textSize="15sp" />
</RelativeLayout>
Джава
package com.teqqli.justjava;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import java.text.NumberFormat;
/**
* This app displays an order form to order coffee.
*/
public class MainActivity extends AppCompatActivity {
int quantity = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/**
* This method is called when the order button is clicked.
*/
public void submitOrder(View view) {
int price = quantity*5;
displayPrice(price);
}
public void increment (View view) {
quantity = quantity + 1;
display(quantity);
}
public void decrement (View view) {
if (quantity>0){
quantity = quantity - 1;
display(quantity);
}
}
/**
* This method displays the given quantity value on the screen.
*/
private void display(int number) {
EditText quantityText = (EditText) findViewById(R.id.quantity_textview);
quantityText.setText("" + number);
}
/**
* This method displays the given price on the screen.
*/
private void displayPrice(int number) {
TextView priceTextView = (TextView) findViewById(R.id.price_textview);
// priceTextView.setText(NumberFormat.getCurrencyInstance().format(number));
priceTextView.setText("KES " + number);
}
}
Пожалуйста, кто-нибудь может мне помочь?
number
. У вас есть два варианта: сохранить текст из вашего EditText в переменную чисел всякий раз, когда пользователь изменяет его, или удалить переменнуюnumbers
и увеличить уже отображаемое число. поэтомуint number = Integer.parseInt(quantityText.getText().toString();
Теперь переменнуюnumber
нужно увеличить и снова установить в тексте редактирования - person Zun   schedule 12.07.2018quantityText.setTest(quantityText.getText().toString());
- person Rakesh R   schedule 12.07.2018