Android布局小案例——安卓版计算器(1),2024年Android开发突破20k有哪些有效的路径

android:onClick=“fun”

android:tag=“1”

android:text=“1” />

<Button

android:layout_width=“wrap_content”

android:layout_height=“match_parent”

android:onClick=“fun”

android:tag=“2”

android:text=“2” />

<Button

android:layout_width=“wrap_content”

android:layout_height=“match_parent”

android:onClick=“fun”

android:tag=“3”

android:text=“3” />

<Button

android:layout_width=“wrap_content”

android:layout_height=“match_parent”

android:onClick=“fun”

android:tag=“+”

android:text=“+” />

<TableRow

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:layout_weight=“1” >

<Button

android:layout_width=“wrap_content”

android:layout_height=“match_parent”

android:onClick=“fun”

android:tag=“.”

android:text=“.” />

<Button

android:layout_width=“wrap_content”

android:layout_height=“match_parent”

android:onClick=“fun”

android:tag=“0”

android:text=“0” />

<Button

android:id=“@+id/btn19”

android:layout_width=“wrap_content”

android:layout_height=“match_parent”

android:layout_span=“2”

android:text=“=” />

MainActivity.java类:

package com.example.tablelayoutjsq;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

public class MainActivity extends Activity {

private TextView text;

private Button btn01;

private Button btn02;

private Button btn19;

String str; //文本值

String str1 = “”; //加减乘除等式

private OnClickListener listener = new OnClickListener() {

@Override

public void onClick(View v) {

String s = “”;

switch (v.getId()) {

case R.id.btn01: //清空

text.setText(“”);

str1 = “”;

break;

case R.id.btn02: //回退

if(text.getText().toString().length() > 0){

s = text.getText().toString().substring(0, text.getText().toString().length()-1);

text.setText(s);

}

break;

case R.id.btn19: //点击=号算结果

str = text.getText().toString();

if(str.equals(“”)){

return ;

}

char[] array = str.toCharArray();

List list = new ArrayList();

for(int i = str1.length(); i < array.length; i++){

if(array[i] == ‘%’ || array[i] == ‘÷’ || array[i] == ‘x’ || array[i] == ‘-’ || array[i] == ‘+’){

if(!s.equals(“”)){

list.add(s);

s = “”;

}

String a = array[i]+“”;

list.add(a);

}else{

s += array[i];

if(i == array.length-1){

list.add(s);

s = “”;

}

}

}

while(true){

String b = list.get(list.size()-1);

if(b.equals(“%”) || b.equals(“÷”) || b.equals(“x”) || b.equals(“+”) || b.equals(“-”))

list.remove(list.size()-1);

if(list.size() == 1){

str1 = text.getText().toString()+“\n”;

text.setText(str1+list.get(0));

break;

}

if(list.size() == 3){

fun(0, list);

}else{

if(“%”.equals(list.get(3)) || “÷”.equals(list.get(3)) || “x”.equals(list.get(3))){

fun(2, list);

}else{

fun(0, list);

}

}

}

default:

break;

}

}

//加减乘除运算方法

private void fun(int i, List list) {

double x = Double.parseDouble(list.get(i));

String y = list.get(i+1);

double z = Double.parseDouble(list.get(i+2));

String sum;

if(y.equals(“%”)){

sum = x % z+“”;

}else if(y.equals(“÷”)){

sum = x / z+“”;

}else if(y.equals(“+”)){

sum = x + z+“”;

}else if(y.equals(“-”)){

sum = x - z+“”;

}else{

sum = x * z+“”;

}

list.set(i, sum);

list.remove(i+2);

list.remove(i+1);

}

};

//点击按钮,把按钮值显示在文本上

public void fun(View v){

str = text.getText().toString();

if(str.length() > 0){

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

题外话

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料免费分享出来。
Android学习PDF+学习视频+面试文档+知识点笔记

【Android思维脑图(技能树)】

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

需要的朋友,可以点赞关注+转发”前往免费领取!

苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料免费分享出来。
Android学习PDF+学习视频+面试文档+知识点笔记

【Android思维脑图(技能树)】

知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。

[外链图片转存中…(img-tHLOyVhG-1711351399332)]

需要的朋友,可以点赞关注+转发”前往免费领取!

希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展~

  • 26
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的安卓开发表格布局案例简易计算器的示例代码: 1. 首先,在XML布局文件中添加表格布局和按钮组件: ```xml <TableLayout android:layout_width="match_parent" android:layout_height="match_parent" android:stretchColumns="*"> <TableRow> <Button android:id="@+id/button_clear" android:text="C" /> <Button android:id="@+id/button_backspace" android:text="<-" android:layout_span="2" /> <Button android:id="@+id/button_divide" android:text="/" /> </TableRow> <TableRow> <Button android:id="@+id/button_7" android:text="7" /> <Button android:id="@+id/button_8" android:text="8" /> <Button android:id="@+id/button_9" android:text="9" /> <Button android:id="@+id/button_multiply" android:text="*" /> </TableRow> <TableRow> <Button android:id="@+id/button_4" android:text="4" /> <Button android:id="@+id/button_5" android:text="5" /> <Button android:id="@+id/button_6" android:text="6" /> <Button android:id="@+id/button_subtract" android:text="-" /> </TableRow> <TableRow> <Button android:id="@+id/button_1" android:text="1" /> <Button android:id="@+id/button_2" android:text="2" /> <Button android:id="@+id/button_3" android:text="3" /> <Button android:id="@+id/button_add" android:text="+" /> </TableRow> <TableRow> <Button android:id="@+id/button_0" android:text="0" android:layout_span="2" /> <Button android:id="@+id/button_decimal" android:text="." /> <Button android:id="@+id/button_equals" android:text="=" /> </TableRow> </TableLayout> ``` 2. 在Java代码中添加按钮点击事件和计算逻辑: ```java public class MainActivity extends AppCompatActivity { private TextView mTextView; private String mOperand1; private String mOperand2; private String mOperator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = findViewById(R.id.text_view); Button buttonClear = findViewById(R.id.button_clear); buttonClear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mOperand1 = null; mOperand2 = null; mOperator = null; mTextView.setText(""); } }); Button buttonBackspace = findViewById(R.id.button_backspace); buttonBackspace.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String text = mTextView.getText().toString(); if (text.length() > 0) { text = text.substring(0, text.length() - 1); mTextView.setText(text); } } }); Button buttonDivide = findViewById(R.id.button_divide); buttonDivide.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mOperand1 = mTextView.getText().toString(); mOperator = "/"; mTextView.setText(""); } }); Button buttonMultiply = findViewById(R.id.button_multiply); buttonMultiply.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mOperand1 = mTextView.getText().toString(); mOperator = "*"; mTextView.setText(""); } }); Button buttonSubtract = findViewById(R.id.button_subtract); buttonSubtract.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mOperand1 = mTextView.getText().toString(); mOperator = "-"; mTextView.setText(""); } }); Button buttonAdd = findViewById(R.id.button_add); buttonAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mOperand1 = mTextView.getText().toString(); mOperator = "+"; mTextView.setText(""); } }); Button buttonDecimal = findViewById(R.id.button_decimal); buttonDecimal.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String text = mTextView.getText().toString(); if (!text.contains(".")) { mTextView.append("."); } } }); Button buttonEquals = findViewById(R.id.button_equals); buttonEquals.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mOperand2 = mTextView.getText().toString(); double result = 0; switch (mOperator) { case "/": result = Double.parseDouble(mOperand1) / Double.parseDouble(mOperand2); break; case "*": result = Double.parseDouble(mOperand1) * Double.parseDouble(mOperand2); break; case "-": result = Double.parseDouble(mOperand1) - Double.parseDouble(mOperand2); break; case "+": result = Double.parseDouble(mOperand1) + Double.parseDouble(mOperand2); break; } mTextView.setText(String.valueOf(result)); } }); Button button0 = findViewById(R.id.button_0); button0.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mTextView.append("0"); } }); Button button1 = findViewById(R.id.button_1); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mTextView.append("1"); } }); Button button2 = findViewById(R.id.button_2); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mTextView.append("2"); } }); Button button3 = findViewById(R.id.button_3); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mTextView.append("3"); } }); Button button4 = findViewById(R.id.button_4); button4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mTextView.append("4"); } }); Button button5 = findViewById(R.id.button_5); button5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mTextView.append("5"); } }); Button button6 = findViewById(R.id.button_6); button6.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mTextView.append("6"); } }); Button button7 = findViewById(R.id.button_7); button7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mTextView.append("7"); } }); Button button8 = findViewById(R.id.button_8); button8.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mTextView.append("8"); } }); Button button9 = findViewById(R.id.button_9); button9.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mTextView.append("9"); } }); } } ``` 3. 运行应用程序并测试计算器

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值