Android Studio的Button控件的onClick属性、setOnClickListener函数与OnClickListener接口用法

本文介绍了Android Studio中Button的onClick属性使用,包括在Xml中设置onClick并对应编写函数,以及通过setOnClickListener函数和实现OnClickListener接口来处理点击事件。
摘要由CSDN通过智能技术生成

Android Studio的Button控件的onClick属性、setOnClickListener函数与OnClickListener接口用法


添加点击事件处理函数有三种方法,一个是在Xml文件中添加onClick属性,然后在代码中添加对应的函数;二是直接在代码中添加setOnClickListener函数;三是Activity通过implements实现OnClickListener接口。

onClick属性

1、在Xml文件中添加onClick属性

<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
  <Button
    android:id="@+id/mybutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="Press Me"
    android:onClick="buttonClick"/>
</RelativeLayout>

在代码中添加对应的函数:

public class MainActivity extends AppCompatActivity {
   
 
  @Override
  protected void onCreate(Bundle
好的,下面是一个简单的多功能计算器程序的设计思路: 1. 创建一个新的Android Studio 项目,并添加一个活动(Activity)。 2. 在XML布局文件中设计计算器的界面,可以使用按钮、文本框和其他控件。 3. 在Java代码中处理计算器的逻辑。可以使用一个Switch语句来处理输入的操作符,然后计算结果。 4. 添加按钮的点击事件,使它们能够响应用户的输入。 5. 添加一些额外的功能,例如清除输入、清除结果或者反转结果等。 6. 最后,测试你的程序是否可以正确地计算各种不同的数学运算。 下面是一些示例代码,可以帮助你开始创建一个多功能计算器程序: XML布局文件: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/result_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="0"/> <GridLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:columnCount="4" android:rowCount="5"> <Button android:id="@+id/button_clear" android:layout_column="0" android:layout_row="0" android:text="C" android:textSize="24sp"/> <Button android:id="@+id/button_backspace" android:layout_column="1" android:layout_row="0" android:text="⌫" android:textSize="24sp"/> <Button android:id="@+id/button_divide" android:layout_column="2" android:layout_row="0" android:text="/" android:textSize="24sp"/> <Button android:id="@+id/button_multiply" android:layout_column="3" android:layout_row="0" android:text="×" android:textSize="24sp"/> <Button android:id="@+id/button_7" android:layout_column="0" android:layout_row="1" android:text="7" android:textSize="24sp"/> <Button android:id="@+id/button_8" android:layout_column="1" android:layout_row="1" android:text="8" android:textSize="24sp"/> <Button android:id="@+id/button_9" android:layout_column="2" android:layout_row="1" android:text="9" android:textSize="24sp"/> <Button android:id="@+id/button_minus" android:layout_column="3" android:layout_row="1" android:text="-" android:textSize="24sp"/> <Button android:id="@+id/button_4" android:layout_column="0" android:layout_row="2" android:text="4" android:textSize="24sp"/> <Button android:id="@+id/button_5" android:layout_column="1" android:layout_row="2" android:text="5" android:textSize="24sp"/> <Button android:id="@+id/button_6" android:layout_column="2" android:layout_row="2" android:text="6" android:textSize="24sp"/> <Button android:id="@+id/button_plus" android:layout_column="3" android:layout_row="2" android:text="+" android:textSize="24sp"/> <Button android:id="@+id/button_1" android:layout_column="0" android:layout_row="3" android:text="1" android:textSize="24sp"/> <Button android:id="@+id/button_2" android:layout_column="1" android:layout_row="3" android:text="2" android:textSize="24sp"/> <Button android:id="@+id/button_3" android:layout_column="2" android:layout_row="3" android:text="3" android:textSize="24sp"/> <Button android:id="@+id/button_equals" android:layout_column="3" android:layout_row="3" android:layout_rowSpan="2" android:text="=" android:textSize="24sp"/> <Button android:id="@+id/button_0" android:layout_column="0" android:layout_row="4" android:layout_columnSpan="2" android:text="0" android:textSize="24sp"/> <Button android:id="@+id/button_dot" android:layout_column="2" android:layout_row="4" android:text="." android:textSize="24sp"/> </GridLayout> </LinearLayout> ``` Java代码: ```java public class MainActivity extends AppCompatActivity { private TextView resultTextView; private String currentNumber = ""; private String currentOperator = ""; private boolean decimalUsed = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); resultTextView = findViewById(R.id.result_text_view); Button buttonClear = findViewById(R.id.button_clear); buttonClear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { clear(); } }); Button buttonBackspace = findViewById(R.id.button_backspace); buttonBackspace.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { backspace(); } }); Button buttonDivide = findViewById(R.id.button_divide); buttonDivide.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { operator("/"); } }); Button buttonMultiply = findViewById(R.id.button_multiply); buttonMultiply.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { operator("*"); } }); Button buttonMinus = findViewById(R.id.button_minus); buttonMinus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { operator("-"); } }); Button buttonPlus = findViewById(R.id.button_plus); buttonPlus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { operator("+"); } }); Button buttonEquals = findViewById(R.id.button_equals); buttonEquals.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { calculate(); } }); Button buttonDot = findViewById(R.id.button_dot); buttonDot.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addDecimal(); } }); Button button0 = findViewById(R.id.button_0); button0.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("0"); } }); Button button1 = findViewById(R.id.button_1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("1"); } }); Button button2 = findViewById(R.id.button_2); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("2"); } }); Button button3 = findViewById(R.id.button_3); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("3"); } }); Button button4 = findViewById(R.id.button_4); button4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("4"); } }); Button button5 = findViewById(R.id.button_5); button5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("5"); } }); Button button6 = findViewById(R.id.button_6); button6.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("6"); } }); Button button7 = findViewById(R.id.button_7); button7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("7"); } }); Button button8 = findViewById(R.id.button_8); button8.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("8"); } }); Button button9 = findViewById(R.id.button_9); button9.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNumber("9"); } }); } private void addNumber(String number) { currentNumber += number; updateResult(); } private void addDecimal() { if (!decimalUsed) { decimalUsed = true; currentNumber += "."; updateResult(); } } private void operator(String operator) { if (!currentOperator.equals("")) { calculate(); } currentOperator = operator; decimalUsed = false; currentNumber = ""; } private void calculate() { double result = 0.0; if (currentNumber.equals("")) { currentNumber = "0"; } switch (currentOperator) { case "+": result = Double.parseDouble(resultTextView.getText().toString()) + Double.parseDouble(currentNumber); break; case "-": result = Double.parseDouble(resultTextView.getText().toString()) - Double.parseDouble(currentNumber); break; case "*": result = Double.parseDouble(resultTextView.getText().toString()) * Double.parseDouble(currentNumber); break; case "/": result = Double.parseDouble(resultTextView.getText().toString()) / Double.parseDouble(currentNumber); break; } currentNumber = Double.toString(result); currentOperator = ""; decimalUsed = false; updateResult(); } private void clear() { currentNumber = ""; currentOperator = ""; decimalUsed = false; updateResult(); } private void backspace() { if (currentNumber.length() > 0) { if (currentNumber.substring(currentNumber.length() - 1).equals(".")) { decimalUsed = false; } currentNumber = currentNumber.substring(0, currentNumber.length() - 1); updateResult(); } } private void updateResult() { if (currentNumber.equals("")) { resultTextView.setText("0"); } else { resultTextView.setText(currentNumber); } } } ``` 你可以根据自己的需求,添加更多的功能和操作,例如: - 添加开平方、倒数、正负号等额外的操作 - 添加多种数学函数,例如sin、cos、tan等 - 添加历史记录功能,记录用户输入的表达式和结果 希望这些代码能够帮助你创建一个简单的多功能计算器程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值