Android Studio实现简易进制转换计算器
作者:小林的学习记录 发布时间:2023-09-17 04:19:29
标签:Android,Studio,计算器
本文实例为大家分享了Android Studio实现简易进制转换计算器的具体代码,供大家参考,具体内容如下
1、问题描述
设计并实现一个数制转换器,能够对输入的任- -进制类型的数值转换为指定的数制类型的数值。必须实现的数制类型有二进制、八进制、十进制和十六进制四种。
2、基本要求
(1)使用Spinner 控件,列出四种数制类型,即:二进制、八进制、十进制和十六进制;
(2)“数值”输入框,不使用Android系统提供的输入面板,进行数值输入;且只能是整数数值;
布局代码:
<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="进制转换器"
android:textSize="35sp"
android:textColor="#9900AA"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="输入数据:"
android:textSize="30sp"
android:textColor="#99CCAA"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_1"
android:layout_width="125dp"
android:layout_height="35dp"
android:text="进制类型:"
android:textSize="25sp"
android:textColor="#000"
/>
<Spinner
android:id="@+id/spinner1"
android:layout_width="240dp"
android:layout_height="35dp"
android:textSize="30sp"
/>
</LinearLayout>
<EditText
android:id="@+id/et_shuru"
android:layout_width="match_parent"
android:layout_height="wrap_content"></EditText>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="输出数据:"
android:textSize="30sp"
android:textColor="#99CCAA"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_2"
android:layout_width="125dp"
android:layout_height="35dp"
android:text="进制类型:"
android:textSize="25sp"
android:textColor="#000"
/>
<Spinner
android:id="@+id/spinner2"
android:layout_width="240dp"
android:layout_height="35dp"
android:textSize="30sp"
/>
</LinearLayout>
<EditText
android:id="@+id/et_shuchu"
android:layout_width="match_parent"
android:layout_height="wrap_content"></EditText>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_0"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="0"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_1"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="1"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_2"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="2"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_3"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="3"
android:background="@drawable/btn_1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_4"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="4"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_5"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="5"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_6"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="6"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_7"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="7"
android:background="@drawable/btn_1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_8"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="8"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_9"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="9"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_A"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="A"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_B"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="B"
android:background="@drawable/btn_1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_C"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="C"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_D"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="D"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_E"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="E"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_F"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="F"
android:background="@drawable/btn_1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn_CE"
android:layout_width="70dp"
android:layout_height="35dp"
android:text="CE"
android:background="@drawable/btn_1"
/>
<Button
android:id="@+id/btn_js"
android:layout_width="70dp"
android:layout_height="40dp"
android:text="计算"
android:background="@drawable/btn_1"
/>
</LinearLayout>
</LinearLayout>
按钮按压效果(btn_1.xml)代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid android:color="#CC7A00"/>
<corners android:radius="10dp"/>
</shape>
</item>
<item android:state_pressed="false">
<shape>
<solid android:color="#FF9900"/>
<corners android:radius="10dp"/>
</shape>
</item>
</selector>
主代码(MainActivity)
package com.example.hzljinzhi;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
public class MainActivity extends AppCompatActivity {
Spinner spinner1,spinner2;
EditText et_shuru,et_shuchu;
Button btn_CE,btn_js;
int ids[]={R.id.btn_0,R.id.btn_1,R.id.btn_2,R.id.btn_3,R.id.btn_4,R.id.btn_5, R.id.btn_6,R.id.btn_7,
R.id.btn_8,R.id.btn_9,R.id.btn_A,R.id.btn_B,R.id.btn_C,R.id.btn_D,R.id.btn_E,R.id.btn_F};
String temp=null,num1=null,num2=null,num3=null,num4=null;int k;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_CE=findViewById(R.id.btn_CE);
btn_js=findViewById( R.id.btn_js);
btn_CE.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
et_shuru.setText("");
et_shuchu.setText("");
}
});
for(int i=0;i<ids.length;i++){
Button btn = findViewById(ids[i]);
if(btn != null)
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_0:
et_shuru.setText(et_shuru.getText()+"0");
break;
case R.id.btn_1:
et_shuru.setText(et_shuru.getText()+"1");
break;
case R.id.btn_2:
et_shuru.setText(et_shuru.getText()+"2");
break;
case R.id.btn_3:
et_shuru.setText(et_shuru.getText()+"3");
break;
case R.id.btn_4:
et_shuru.setText(et_shuru.getText()+"4");
break;
case R.id.btn_5:
et_shuru.setText(et_shuru.getText()+"5");
break;
case R.id.btn_6:
et_shuru.setText(et_shuru.getText()+"6");
break;
case R.id.btn_7:
et_shuru.setText(et_shuru.getText()+"7");
break;
case R.id.btn_8:
et_shuru.setText(et_shuru.getText()+"8");
break;
case R.id.btn_9:
et_shuru.setText(et_shuru.getText()+"9");
break;
case R.id.btn_A:
et_shuru.setText(et_shuru.getText()+"A");
break;
case R.id.btn_B:
et_shuru.setText(et_shuru.getText()+"B");
break;
case R.id.btn_C:
et_shuru.setText(et_shuru.getText()+"C");
break;
case R.id.btn_D:
et_shuru.setText(et_shuru.getText()+"D");
break;
case R.id.btn_E:
et_shuru.setText(et_shuru.getText()+"E");
break;
case R.id.btn_F:
et_shuru.setText(et_shuru.getText()+"F");
break;
}
}
});
}
et_shuru=findViewById(R.id.et_shuru);
et_shuchu=findViewById(R.id.et_shuchu);
spinner1=(Spinner)findViewById(R.id.spinner1);
spinner2=(Spinner)findViewById(R.id.spinner2);
//建立数据源
String[] mltems = getResources().getStringArray(R.array.data);
ArrayAdapter<String>adapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,mltems);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//绑定Adapter到控件
spinner1.setAdapter(adapter);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
switch (pos){
case 0: k=2;setEnabled(2);break;
case 1: k=8;setEnabled(8);break;
case 2: k=10;setEnabled(10);break;
case 3: k=16;setEnabled(16);break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spinner2.setAdapter(adapter);
spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, final int pos, long id) {
switch (pos){
case 0: btn_js.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
temp = et_shuru.getText().toString();
num3 = Integer.valueOf(temp, k).toString();//转换为十进制;
num1 = Integer.toBinaryString(Integer.parseInt(num3));
et_shuchu.setText(num1);
}
});break;
case 1: btn_js.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
temp = et_shuru.getText().toString();
num3 = Integer.valueOf(temp, k).toString();//转换为十进制;
num2 = Integer.toOctalString(Integer.parseInt(num3));
et_shuchu.setText(num2);
}
});break;
case 2: btn_js.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
temp = et_shuru.getText().toString();
num3 = Integer.valueOf(temp, k).toString();//转换为十进制;
et_shuchu.setText(num3);
}
});break;
case 3: btn_js.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
temp = et_shuru.getText().toString();
num3 = Integer.valueOf(temp, k).toString();//转换为十进制;
num4 = Integer.toHexString(Integer.parseInt(num3));
et_shuchu.setText(num4);
}
});break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
public void setEnabled(int count){
int i =0,size = Math.min(count,ids.length);
for( i=0;i<size;i++){
Button btn = findViewById(ids[i]);
if(btn != null){
btn.setEnabled(true);
}
}
for( i=size;i<ids.length;i++){
Button btn = findViewById(ids[i]);
if(btn != null){
btn.setEnabled(false);
}
}
}
}
Spinner 控件的数据源(jinzhi.xml)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="data">
<item>二进制</item>
<item>八进制</item>
<item>十进制</item>
<item>十六进制</item>
</string-array>
</resources>
来源:https://blog.csdn.net/lin_curry/article/details/108919466


猜你喜欢
- 1、概述 限流的含义是在单位时间内确保发往某个模块的请求数量小于某个数值,比如在实现秒杀功能时,需要确保在10秒内发往支付模块的请求数量小
- 队列的特点1.可以使用数组和链表两种方式来实现。2.遵循先入先出(FIFO)的规则,即先进入的数据先出。3.属于有序列表。图解实现过程:1.
- 本文实例为大家分享了Unity实现ScrollView滑动吸附的具体代码,供大家参考,具体内容如下最近在做一个展示模块的时候遇到了一个需要实
- 逆时针画圆弧,原理:将360度分割成36份,分别标出每10度角度时的坐标点,然后将每个点连接起来。 #include <io
- 本文简要分析了C#的回调机制。分享给大家供大家参考。具体分析如下:1.回调听起来高大上,实际上本质就是委托,回调是委托的一种应用,其本质就是
- 在以往的 Tomcat 项目中,一直习惯用 Ant 打包,使用 build.xml 配置,通过 ant -buildfile 的方式在机器上
- Lambda 表达式最早接触到 Lambda 表达式的时候,是在学习 python 的时候,当时就很好奇。后来,才发现 Java 也有这个方
- 在内核编程中字符串有两种格式ANSI_STRING与UNICODE_STRING,这两种格式是微软推出的安全版本的字符串结构体,也是微软推荐
- 本文实例汇总了DevExpress SplitContainerControl的用法,希望对大家进行C#项目开发能起到一定的帮助作用。具体用
- 一、系统介绍1.开发环境开发工具:Eclipse2021JDK版本:jdk1.8Mysql版本:8.0.132.技术选型Java+Swing
- SpringMVC AbstractAnnotationConfigDispatcherSerServlet3.0环境中,容器会在类路径中查
- 随着时间的推移现在的软件要求显示的内容越来越多,所以要在小的屏幕上能够更好的显示更多的内容,首先我们会想到底部菜单栏,但是有时候想网易新闻要
- 具体代码如下所示:/// <summary> /// 启用事务提交多条带参数的SQL语句 /// </summary>
- 最近看Android FrameWork层代码,看到了ThreadLocal这个类,有点儿陌生,就翻了各种相关博客一一拜读;自己随后又研究了
- 最近由于工作原因,没时间更新,开始吧~~关于json的返回需要用到一个工具包来将书转换为json格式,在此用到的jar包为: im
- SelectMany操作符提供了将多个from子句组合起来的功能,相当于数据库中的多表连接查询,它将每个对象的结果合并成单个序列。示例:st
- 前沿页面通用Loading组件是一个App必不可少的基础功能,之前只开发过Android原生的页面Loading,这次就按原生的逻辑再开发一
- SpringCloud Function 介绍SpringCloud 是一套分布式系统的解决方案,常见的还有阿里巴巴的Dubbo,Fass(
- 前言最近看插件库上少有的取色器大都是圆形的或者奇奇怪的的亚子,所以今天做两个矩形的颜色取色器提示:以下是本篇文章正文内容,下面案例可供参考一
- 本文实例讲述了Spring实战之注入集合值操作。分享给大家供大家参考,具体如下:一 配置<?xml version="1.0