开发第一个安卓程序(按钮显示一个当前的系统时间)

欢迎转载,请注明转载自安卓订阅号(安卓编程入门进阶)。

百度云原清晰度地址:http://pan.baidu.com/s/1mhS0H8O

在线视频(腾讯):https://v.qq.com/x/page/f0399asic9f.html

创建第一个交互式安卓程序(显示系统时间)

课程前具备的知识:

1、  已经完成安卓开发平台的创建;

2、  UI线程(主线程),以下大致说一下安卓程序的大致编程思想,可以稍微看一下,也没有必要完全理解,可以结合后续的章节再来回顾。

(对比一个手机上已经安装的安卓程序)安卓程序分为前台显示界面和java处理程序,实现一个安卓程序的重要目的就是实现通过后台处理程序刷新前台的显示界面,或者从前台显示界面获得与用户的交互数据交给后台处理程序进行处理。综合来看就是用户-前台界面-后台java程序。

本课程学习目标:

1、学习新建一个安卓工程;

2、初步了解安卓程序按钮的定义和使用方式;

3、了解安卓中日期和时间戳的转换;

课程操作步骤:

1、新建安卓工程。

打开android studio程序,通过file-new-newproject。接下来只修改SDK版本为4.0及以上,名称为ShowTime。点击finish创建新的工程完成。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Android 计算器程序的代码示例,仅供参考: activity_main.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" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:textSize="24sp" /> <GridLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:columnCount="4" android:rowCount="5" android:padding="16dp"> <Button android:id="@+id/button_7" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="7" /> <Button android:id="@+id/button_8" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="8" /> <Button android:id="@+id/button_9" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="9" /> <Button android:id="@+id/button_divide" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="/" /> <Button android:id="@+id/button_4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="4" /> <Button android:id="@+id/button_5" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="5" /> <Button android:id="@+id/button_6" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="6" /> <Button android:id="@+id/button_multiply" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="*" /> <Button android:id="@+id/button_1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="1" /> <Button android:id="@+id/button_2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="2" /> <Button android:id="@+id/button_3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="3" /> <Button android:id="@+id/button_minus" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="-" /> <Button android:id="@+id/button_clear" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnSpan="2" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="C" /> <Button android:id="@+id/button_0" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="0" /> <Button android:id="@+id/button_dot" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="." /> <Button android:id="@+id/button_add" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="+" /> <Button android:id="@+id/button_equals" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_columnSpan="2" android:layout_columnWeight="1" android:layout_rowWeight="1" android:text="=" /> </GridLayout> </LinearLayout> ``` MainActivity.java 文件: ```java import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import java.math.BigDecimal; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TextView mResultView; private boolean mIsOperatorClicked = false; private String mOperator = ""; private BigDecimal mFirstNumber = BigDecimal.ZERO; private BigDecimal mSecondNumber = BigDecimal.ZERO; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取 TextView 对象 mResultView = findViewById(R.id.result); // 获取数字按钮对象并设置点击事件监听器 findViewById(R.id.button_0).setOnClickListener(this); findViewById(R.id.button_1).setOnClickListener(this); findViewById(R.id.button_2).setOnClickListener(this); findViewById(R.id.button_3).setOnClickListener(this); findViewById(R.id.button_4).setOnClickListener(this); findViewById(R.id.button_5).setOnClickListener(this); findViewById(R.id.button_6).setOnClickListener(this); findViewById(R.id.button_7).setOnClickListener(this); findViewById(R.id.button_8).setOnClickListener(this); findViewById(R.id.button_9).setOnClickListener(this); // 获取运算符按钮对象并设置点击事件监听器 findViewById(R.id.button_add).setOnClickListener(this); findViewById(R.id.button_minus).setOnClickListener(this); findViewById(R.id.button_multiply).setOnClickListener(this); findViewById(R.id.button_divide).setOnClickListener(this); // 获取其他按钮对象并设置点击事件监听器 findViewById(R.id.button_clear).setOnClickListener(this); findViewById(R.id.button_dot).setOnClickListener(this); findViewById(R.id.button_equals).setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button_0: case R.id.button_1: case R.id.button_2: case R.id.button_3: case R.id.button_4: case R.id.button_5: case R.id.button_6: case R.id.button_7: case R.id.button_8: case R.id.button_9: case R.id.button_dot: // 点击数字或小数点按钮 handleNumberClick(((Button) v).getText().toString()); break; case R.id.button_add: case R.id.button_minus: case R.id.button_multiply: case R.id.button_divide: // 点击加、减、乘、除按钮 handleOperatorClick(((Button) v).getText().toString()); break; case R.id.button_clear: // 点击清空按钮 handleClearClick(); break; case R.id.button_equals: // 点击等于按钮 handleEqualsClick(); break; } } /** * 处理数字或小数点按钮的点击事件 */ private void handleNumberClick(String number) { if (mIsOperatorClicked) { // 如果之前点击了运算符,则清空显示屏上的内容 mResultView.setText(""); mIsOperatorClicked = false; } // 在显示屏上追加数字或小数点 mResultView.append(number); } /** * 处理加、减、乘、除按钮的点击事件 */ private void handleOperatorClick(String operator) { if (!mIsOperatorClicked) { // 如果之前未点击运算符,则将当前显示屏上的数字作为第一个操作数 mFirstNumber = new BigDecimal(mResultView.getText().toString()); mOperator = operator; mIsOperatorClicked = true; } } /** * 处理清空按钮的点击事件 */ private void handleClearClick() { mResultView.setText(""); mFirstNumber = BigDecimal.ZERO; mSecondNumber = BigDecimal.ZERO; mIsOperatorClicked = false; mOperator = ""; } /** * 处理等于按钮的点击事件 */ private void handleEqualsClick() { if (mIsOperatorClicked) { // 如果之前点击了运算符,则不进行任何操作 return; } // 将当前显示屏上的数字作为第二个操作数 mSecondNumber = new BigDecimal(mResultView.getText().toString()); BigDecimal result = BigDecimal.ZERO; switch (mOperator) { case "+": result = mFirstNumber.add(mSecondNumber); break; case "-": result = mFirstNumber.subtract(mSecondNumber); break; case "*": result = mFirstNumber.multiply(mSecondNumber); break; case "/": if (mSecondNumber.equals(BigDecimal.ZERO)) { mResultView.setText("Error"); return; } result = mFirstNumber.divide(mSecondNumber, 10, BigDecimal.ROUND_HALF_UP); break; } // 在显示屏上显示结果 mResultView.setText(result.toPlainString()); mFirstNumber = result; mSecondNumber = BigDecimal.ZERO; mIsOperatorClicked = false; mOperator = ""; } } ``` 这个示例只是一个简单的计算器程序,还有很多需要完善和优化的地方,例如输入错误处理、小数点精度控制、界面美化和多语言支持等。希望这个示例能够帮助您入门 Android 开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值