我是一个学习android编程的新手,有助于提高工作效率。 我有一个非常简单的问题,我认为应该有一个简单的答案,我在找到eddittext,listener和edittext变量时找不到任何有用的东西。
基本上我有一个Edittext字段,应该通过按+或 - 按钮或用户输入来更新。我需要将edittext字段放入变量中,以便我可以在计算中使用它。我希望计算在我点击+或 - 按钮之后以及之后(可能在更容易的时候)用户输入文本时发生。
当我按下+或 - 按钮时,生成的编辑文本基于我的int变量燃料,但完全忽略了用户输入(因为我无法获得该用户输入来更新我的燃料变量)。
我需要的是什么。 1)基于用户输入更新的燃料变量,以便当按下后续的+或 - 按钮时,相对于用户输入调整燃料变量。即将用户输入发送到燃料变量。
燃料是一个全局的int变量。 fuelCalc是一种方法,我计划根据燃料变量进行一些计算。
以下是我的代码的摘录:
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);
}
感谢您的帮助。
Airfix膨胀
答案 0 :(得分:0)
我并非100%确定我理解您的问题...您希望在用户将文本输入EditText时更新变量,对吗?如果是这样,你可能只想出TextWatcher
;如果我理解正确,它会完全符合您的要求。
示例:
private final TextWatcher fuelWatcher = new TextWatcher(){
EditText fuelLoadField = (EditText)findViewById(R.id.Fuel_load_field);
@Override
afterTextChanged(Editable s){
fuel = = Integer.parseInt(fuelLoadField.getText());
}
}
请务必通过致电onCreate()
fuelField.addTextChangedListener(fuelWatcher);
注册您的EditText对象。
答案 1 :(得分:0)
如果您想在用户按任意按钮时从编辑文本字段中获取值,您只需在EditText上调用getText()并将其存储为int以用于将来的计算openssl s_client -host example.com -port 8443