我是一个学习android编程的新手,这有助于提高工作效率。我有一个非常简单的问题,我认为应该有一个简单的答案,我只是找不到任何在我的eddittext,listener和edittext变量搜索工作。
基本上,我有一个edittext字段,应该通过按+或-按钮或用户输入来更新。我需要将edittext字段放入变量中,以便在计算中使用它。我希望计算发生在我点击+或-按钮之后,在用户输入文本之后(如果更容易的话,可能是在期间)。
当我按下+或-按钮时,生成的编辑文本基于我的int变量fuel,但完全忽略了用户输入(因为我无法获得用户输入来更新fuel变量)。
我需要的是。1) 要根据用户输入更新的燃油变量,以便在按下后续的+或-按钮时,燃油变量相对于用户输入进行调整。i、 e.将用户输入发送到燃料变量。
fuel是一个全局int变量。fuelcalc是一种基于fuel变量进行计算的方法。
以下是我的代码摘录:
xml:
<EditText
android:id="@+id/Fuel_load_field"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:gravity="center"
android:hint="Fuel Load"
android:inputType="number"
android:imeOptions="actionDone"
android:maxLength="5"
android:textSize="16sp"/>
<Button
android:layout_width="64dp"
android:layout_height="match_parent"
android:text="+"
android:textAllCaps="true"
android:onClick="addOneHundredtoFuel"
android:textSize="16sp" />
<Button
android:layout_width="64dp"
android:layout_height="match_parent"
android:text="-"
android:textAllCaps="true"
android:onClick="subtractOneHundredtoFuel"
android:textSize="16sp" />
以下是java:
public void addOneHundredtoFuel(View view) {
fuel = fuel + 100;
TextView fuelField = (TextView) findViewById(R.id.Fuel_load_field);
fuelField.setText(String.valueOf(fuel));
fuelCal(fuel);
}
public void subtractOneHundredtoFuel(View view) {
fuel = fuel - 100;
TextView fuelField = (TextView) findViewById(R.id.Fuel_load_field);
fuelField.setText(String.valueOf(fuel));
fuelCal(fuel);
}
public void fieldEntryFuel(View view) {
EditText inputText = (EditText) findViewById(R.id.Fuel_load_field);
String fuelString = inputText.getText().toString();
fuel = Integer.parseInt(fuelString);
TextView fuelField = (TextView) findViewById(R.id.Fuel_load_field);
fuelField.setText(String.valueOf(fuel));
fuelCal(fuel);
}
谢谢你的帮助。
空运
2条答案
按热度按时间eivnm1vs1#
我不是100%确定我理解你的问题。。。当用户在edittext中输入文本时,您想更新一个变量,对吗?如果是这样的话,你可能想退出
TextWatcher
; 如果我理解正确的话,它正是你想要做的。例子:
确保将该侦听器注册到
onCreate()
通过呼叫fuelField.addTextChangedListener(fuelWatcher);
lnxxn5zx2#
如果您想在用户按下任何按钮时从“编辑文本”字段中获取值,只需对edittext调用gettext(),并将其存储为int,以便在将来的计算中使用
int userInput = Integer.parseInt(myEditText.getText);