当前位置: 首页 > 知识库问答 >
问题:

Edittext Field允许用户通过按钮更改字段或编辑并将结果分配给变量

尉迟远
2023-03-14

我是一个新手,学习android编程是为了提高工作效率。我有一个很简单的问题,我认为应该有一个简单的答案,我只是找不到任何工作在我的eddittext,listener和edittext到变量的搜索。

基本上,我有一个Edittext字段,应该通过按+或-按钮或用户输入来更新。我需要将edittext字段放入一个变量中,以便在计算中使用它。我希望计算发生在我点击+或-按钮之后(可能是在用户输入文本的过程中,如果比较容易的话)。

当我按下+或-按钮时,得到的编辑文本基于我的int变量fuel,但完全忽略了用户输入(因为我无法获得用户输入来更新我的fuel变量)。

我需要的是。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

共有1个答案

苏翰学
2023-03-14

我不是百分之百能理解你的问题...您希望在用户向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());
    }
}

确保通过调用FuelField.AddTextChangedListener(fuelWatcher)将该侦听器注册到onCreate()中的EditText对象

 类似资料:
  • 我找不到问题的原因。 该程序的功能如下...< code >服务器允许多个用户登录(连接到服务器)并使用< code>rep:(用于替换整个字符串)或< code>app:(用于追加到字符串)的启动命令编辑名为< code>text的相同字符串变量。 当客户端连接时,他们必须输入命令。无论命令是什么,它都会在同一个窗口中回显给它们(在不同的CMD窗口中同时运行服务器和客户端)。因此,如果他们输入,

  • 我对java相当陌生,尽管我对C有相当基本的了解。对于我的任务,我正在计算零钱并将其排序为美国货币(也就是说,如果你有105美分,它会把它分成1美元和1角)。从逻辑上讲,我明白如何做到这一点,但我在理解java语法方面遇到了一些严重的困难。我很难找到一种方法将用户输入的值分配给我创建的变量。在C语言中,你只需使用cin,但Java在这方面似乎要复杂得多。 以下是我目前的代码: 如果您能帮我将用户输

  • 问题内容: 我使用此辅助函数来接收我的请求的JSON结果: 我将它作为Web应用程序中url的一部分提供了一些字符串,例如’/ api / getusers’,因此看起来像。现在我需要包含JSON数据,我从URL接收将被分配给我的变量,所以它看起来像这样的字符串结果:。然后,我将处理此JSON数据。问题在于返回响应变量。它是未定义的。谢谢! 问题答案: 这是一个异步操作,这意味着从服务器返回后很长

  • 问题内容: SQL Server(2000/2005)函数获取表名和字段名作为参数,并从函数内的动态查询返回结果。结果应分配给变量,该变量将在存储过程中进一步使用。如何实现呢? 我收到错误消息:“只能从函数中执行函数和扩展存储过程。” 问题答案: 我不确定这如何与函数一起使用,但是如果您有一个存储过程返回一个结果集,则可以使用INSERT EXEC语句将其插入到表变量中。 只要字段匹配,那将起作用

  • 问题内容: 第一个System.out打印 2 并且应该打印,而第二个System打印 65 。我已经用这种语言编程了一年多了,据我所知这是不可能发生的!有什么帮助吗? 上面的代码在两行上都显示 9 。 问题答案: 当你这样做,之前仅仅是一个参考阵列, NO 新阵列已创建并分配给。因此,当您查看自己的价值时,基本上就是查看的价值,反之亦然。只是的别名。这就是为什么在第二张照片中您得到65。 检查该

  • 问题内容: 我有一个看起来与此类似的MySQL数据库: 我需要在html表中对结果进行排序,如下所示: 我不知道这是否应该通过SQL查询(concat_group或类似的东西)或PHP完成,有人可以帮帮我吗? 伙计们,感谢您的以下帮助,但我还需要完成类似的工作,例如: 我需要对上面的示例进行排序/显示,如下所示: 现在,我的问题有了新的维度。我的数据库如下所示: (我正在使用表) 我需要实现: ¿