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
0
投稿
猜你喜欢
- 利用Jconsole工具查看程序的资源占用请求。安装jdk时bin目录有jconsole.exe工具,或者通过 Win + R,输入jcon
- 加载本地图片在项目目录下创建assets文件夹,再在其文件夹下创建images文件夹,后面将需要的图片复制到其中即可在pubspec.yam
- 用AndroidStudio编写高级计算器带三角函数对数运算功能界面效果图:layout布局 activity_jisuanqi.xml代码
- 需求:校验收货地址是否超出配送范围重要:做该需求的思路就是通过卖家和卖家具体的地址信息,来获取到二者的经纬度, 此时可以使用百度的 &quo
- 这是我们用得比较多的一种设计模式,也是23种标准设计模式之一,使用前面讲的简单工厂设计模式,遇到具体产品经常变换时就不太适合了,违反了开闭设
- SpringBoot入门Demo,一次深夜踩坑记录。springboot小项目开启后,访问端口无反应。首先看我的项目目录:项目的pom文件内
- 什么是Hystrix在日常生活用电中,如果我们的电路中正确地安置了保险丝,那么在电压异常升高时,保险丝就会熔断以便切断电流,从而起到保护电路
- 前言aop面向切面编程,是编程中一个很重要的思想本篇文章主要介绍的是SpringBoot切面Aop的使用和案例什么是aopAOP(Aspec
- 一、类加载流程类加载的流程可以简单分为三步:加载连接初始化而其中的连接又可以细分为三步:验证准备解析下面会分别对各个流程进行介绍。1.1 类
- Atomikos是一个为Java平台提供增值服务的并且开源类事务管理器,如果将事务统一注册到Atomikos中,则可以统一管理。常用于后台管
- 使用场景1、将用户信息导出为excel表格(导出数据....)2、将Excel表中的信息录入到网站数据库(习题上传....)大大减轻网站录入
- 一、前言CountDownLatch维护了一个计数器(还是是state字段),调用countDown方法会将计数器减1,调用await方法会
- 目录Spring事件驱动源码实战在项目实际开发过程中,我们有很多这样的业务场景:一个事务中处理完一个业务逻辑后需要跟着处理另外一个业务逻辑,
- 本文实例讲述了C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法。分享给大家供大家参考,具体如下:在Winform中如果将
- 本文实例讲述了Android编程学习之抽象类AbsListView用法。分享给大家供大家参考,具体如下:一、继承关系public abstr
- 前言《JAVA打砖块》游戏是自制的游戏。玩家操作一根萤幕上水平的“棒子”,让一颗不断弹来弹去的&am
- C#使用GET、POST请求获取结果,这里以一个简单的用户登陆为例。1、 使用GET请求获取结果1.1 创建LoginHandler.asp
- 说明:在填写表数据时当输入完一个文本框后,输入下一个文本框时需要用Tab键切换,但是有的人喜欢用Enter键切换下一个,此方法是Enter取
- 前言Spring是什么?它是一个应用程序框架,为应用程序的开发提供强大的支持,例如对事务处理和持久化的支持等;它也是一个bean容器,管理b
- String类中的concat()方法的使用concat(String str)用法concat(String string) 返回值是St