gpt4 book ai didi

java - 安卓编程: Calling function with different input using onClick

转载 作者:行者123 更新时间:2023-12-01 14:59:28 25 4
gpt4 key购买 nike

我是 Android 编程新手,所以如果问题看起来很愚蠢,请原谅。

我正在 Android 中创建一个计算器,对于用户界面,我有很多按钮(大约 20 个按钮用于 10 位数字,以及各种操作)。现在,一旦用户按下按钮“=”,我就会计算出一个字符串表达式。但是,如果他按下任何其他按钮,输入就会更新。假设他按“1”然后输入=1;然后他按 2 然后输入变成“12”,依此类推。因此,每当按下不同的按钮时,我都需要调用相同的函数,但函数的输入是不同的。我可以通过创建 n 个不同的函数来解决这个问题,每个按钮一个函数,但这不是很有可扩展性。那么我该怎么做呢?

当前的 xml 文件是:

<Button
android:id="@+id/Button01"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/Button03"
android:layout_alignBottom="@+id/Button03"
android:layout_toRightOf="@+id/Button03"
android:onClick="UpdateExpression_/"
android:text="/" />

<Button
android:id="@+id/Button02"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/Button01"
android:layout_alignBottom="@+id/Button01"
android:layout_toRightOf="@+id/Button01"
android:onClick="UpdateExpression_X"
android:text="x" />

我需要更新到 android:onClick="UpdateExpression"并提及此函数调用的一些输入。

谢谢。

最佳答案

您将需要一个中央 onClick 方法,我们将其称为 updateExpression(View v) 另外,请注意您的代码:方法名称应以小写字母开头,这是 Java 命名约定。

  android:onClick="updateExpression" 

现在实现:

public void updateExpression (View v)
{
switch (v.getId())
{
case R.id.button1:
//do stuff here
break;
case R.id.button2:
//do other stuff here
break;
}
}

您需要 v.getId() 的原因是您正在检查按钮的 id,然后如果是该特定 id 则执行某些操作。需要此逻辑,因为所有按钮都将实现相同的方法。

关于java - 安卓编程: Calling function with different input using onClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13887959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com