文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android Studio如何实现简易进制转换计算器

2023-06-30 15:26

关注

这篇文章主要介绍了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>

关于“Android Studio如何实现简易进制转换计算器”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Android Studio如何实现简易进制转换计算器”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯