如何在android中使用EditText用户输入、递增和递减按钮值



我对android有点陌生。因此,我尝试使用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>

Java

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);
}
}

有人能帮我吗?

使用quantityText.getText()函数获取值并将其存储在变量中,然后对该值执行递增和递减操作。

类似这样的东西:

int value = Integer.parseInt(quantityText.getText().toString().trim());

然后将此CCD_ 2传递给递增和递减函数。

尝试:

public class MainActivity extends AppCompatActivity {
EditText quantityText;
int quantity = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
quantityText= (EditText) findViewById(R.id.quantity_textview);
}
/**
* This method is called when the order button is clicked.
*/
public void submitOrder(View view) {
quantity = Integer.parseInt(quantityText.getText().toString());
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) {
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("KES " + number);
}
}

它很简单,用于创建onclick事件:

final EditText input = (EditText) findViewById(R.id.textview_id);
final TextView view = (TextView) findViewById(R.id.textview_id);
final Button button = findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
view.setText(input.getText().toString());
}
});

您的EditText没有被使用的原因是您没有从EditText中获取值。所以得到这样的值:;

String valueFromEditText=quantityText.getText().toString(); // Getting string value from EditText
int valueFromEditTextInIntegerFormat=Integer.parseInt(valueFromEditText) // Converting string value received into integer format

现在使用这个整数值来执行您想要的的任何操作

好运:(

You need to create this method: 
private void display()
{
EditText quantityText = (EditText) findViewById(R.id.quantity_textview);

int  value = Integer.parseInt(quantityText.getText().toString());
quantity=value;
Log.i("vl", "display: "+value);
}
//replace your method with this 
public void submitOrder(View view) {
if(quantity==0)
{
display();
}
int price = quantity*5;
quantity=0;
displayPrice(price);
}
//if you get any problem ask me in a comment
String yourValue = quantityText.getText().toString(); //gets you the contents of edit text
tvTextView.setText(yourValue); //displays it in a textview..

使用quantity = Integer.parseInt(quantityText.getText().toString());

最新更新