基于Android Studio 实现计算器(简单易上手使用技术多)

2024-06-04 9391阅读

一、高质量源码(非开源,白嫖低价勿扰)

关注公众号:《编程乐学》

后台回复:23112301

前言

        本项目是一个基于Android Studio和Java语言开发的简单计算器应用。应用包含启动页面、登陆注册页面、首页、计算器页面和我的页面等多个功能模块。

        通过这个项目的实践,希望这个项目能够帮助你入门Android开发,并为你以后的学习和项目提供一些基础。


目录

前言

一、项目概述

1、构成以及功能设计

二、开发环境

三、准备工具

四、详细设计

1、新建工程

2、搭建启动页

3、搭建注册登陆面

3、搭建首页界面

4、搭建我的页面

五、项目运行

1.图片演示

2.视频演示

六、项目总结

七、源码下载


一、项目概述

1、构成以及功能设计

①启动页面

    -倒计时

②登陆注册页面

    - 使用SQLite数据

③ 首页

    - 使用FrameLayout进行页面的切换

④ 计算器页面

    - 进行运算

⑤我的页面

   - 显示用户名

   - 实现退出登录功能

二、开发环境

        我的开发环境如下,大家的AS版本不需要和我相同,只要是近两年从官网下载的版本,都是比4.0.0 (2020)高的,是可以满足运行和开发要求的。

基于Android Studio 实现计算器(简单易上手使用技术多) 第1张

三、准备工具

  1. 选择自己喜欢的logo

四、详细设计

1、新建工程

  • 首先打开Android Studio,并新建一个工程,File——>New——>New Project——>Empty Project,工程名称叫做Calculator,可以根据自己喜好设置名称。

  • 包名自己随意设定,这里博主用的是com.example,一般是com.example;工程文件的保存路径要修改一下,不要放在C盘,我这里选择的是放在H盘,养成项目统一放在英文路径下的好习惯。

  • 最后选择API 24:Android 7.0,因为这样它就拥有了96.3%的跨平台性(兼容性非常好),因为它版本很低,基本上模拟器API版本都是高于20的,所以这个软件可以运行其他各种设备上。点击Finish完成创建。

    基于Android Studio 实现计算器(简单易上手使用技术多) 第2张

    2、搭建启动页

            这里使用到计时器,放置自己喜欢的图片即可

    基于Android Studio 实现计算器(简单易上手使用技术多) 第3张

    activity_start.xml布局文件代码:

        
            
            
        
    

    3、搭建注册登陆面

      设计一个app的时候,一定要先设计layout文件,再设计java文件,因为布局有了,才能在上面进行代码的编写。我们来看一下activity_register和activity_login布局文件。

    基于Android Studio 实现计算器(简单易上手使用技术多) 第4张

    基于Android Studio 实现计算器(简单易上手使用技术多) 第5张

    注册页面完整代码如下:

        
        
            
            
            
            
        
        
        
    

    登陆页面完整代码如下:

        
        
        
            
            
            
        
        
    

            然后回到我们的Activity文件。首先创建需要用到的控件,然后绑定控件,再设置监听器等。

    注册页面Register.java代码如下:

    package com.example.calculator.RegisterLogin;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    import androidx.appcompat.app.AppCompatActivity;
    import com.example.calculator.Helper.DatabaseHelper;
    import com.example.calculator.R;
    public class RegisterActivity extends AppCompatActivity {
        private EditText mUserNameEditText;
        private EditText mPasswordEditText;
        private DatabaseHelper mDatabaseHelper;
        private EditText repeat;
        private TextView tvLogin;
        private Button registerButton;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register);
            initView();
            button();
            login();
        }
        // 返回到登陆页面
        private void login() {
            tvLogin.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    finish();
                }
            });
        }
        private void button() {
            // 点击注册按钮进行验证
            registerButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 获取三个输入框的内容
                    String username = mUserNameEditText.getText().toString().trim();
                    String password = mPasswordEditText.getText().toString().trim();
                    String passwordrepeat = repeat.getText().toString().trim();
                    // 判断两次密码是否一致
                    if (passwordrepeat.equals(password) && password.equals(passwordrepeat)) {
                        boolean result = mDatabaseHelper.insertData(username, password);
                        if (result) {
                            Toast.makeText(getApplicationContext(), "注册成功", Toast.LENGTH_SHORT).show();
                            Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
                            startActivity(intent);
                            finish();
                        } else {
                            Toast.makeText(getApplicationContext(), "注册失败", Toast.LENGTH_SHORT).show();
                        }
                    } else {
                        Toast.makeText(getApplicationContext(), "两次密码不同,请检查!", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
        private void initView() {
            mUserNameEditText = findViewById(R.id.username_edittext);
            mPasswordEditText = findViewById(R.id.password_edittext);
            mDatabaseHelper = new DatabaseHelper(this);
            repeat = (EditText) findViewById(R.id.repeat);
            tvLogin = (TextView) findViewById(R.id.tv_login);
            registerButton = findViewById(R.id.register_button);
        }
    }

    登陆页面LoginActivity .java代码如下:

    package com.example.calculator.RegisterLogin;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    import androidx.appcompat.app.AppCompatActivity;
    import com.example.calculator.Helper.DatabaseHelper;
    import com.example.calculator.MainActivity;
    import com.example.calculator.R;
    public class LoginActivity extends AppCompatActivity {
        private EditText mUserNameEditText;
        private EditText mPasswordEditText;
        private Button mLoginButton;
        private TextView tvRegister;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);
            mUserNameEditText = findViewById(R.id.username_edittext);
            mPasswordEditText = findViewById(R.id.password_edittext);
            mLoginButton = findViewById(R.id.login_button);
            tvRegister = findViewById(R.id.tv_register);
          
            tvRegister.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
                    startActivity(intent);
                }
            });
            mLoginButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String username = mUserNameEditText.getText().toString().trim();
                    String password = mPasswordEditText.getText().toString().trim();
                    if (username.isEmpty() || password.isEmpty()) {
                        Toast.makeText(getApplicationContext(), "请输入账号或密码", Toast.LENGTH_SHORT).show();
                        return;
                    }
                    boolean result = mDatabaseHelper.checkUser(username, password);
                    if (result) {
                        Toast.makeText(getApplicationContext(), "登陆成功", Toast.LENGTH_SHORT).show();
                
                    } else {
                        Toast.makeText(getApplicationContext(), "账号或密码错误", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    }

    3、搭建首页界面

            主页主要实现不同的Fragment页面切换,默认显示计算器页面!

    基于Android Studio 实现计算器(简单易上手使用技术多) 第6张

    首页页面布局代码如下所示:

        
        
        
            
                
                
            
            
                
                
            
        
    

    4、搭建我的页面

    基于Android Studio 实现计算器(简单易上手使用技术多) 第7张

       布局页面代码如下所示:

        
        
        
            
                
                
                
            
            
            
                
                
            
            
            
                
                
            
        
    

     对应的JAVA实现讲解:

    1. 在onCreateView方法中,通过LayoutInflater将fragment_mine布局文件实例化为View对象,并通过findViewById方法初始化各个控件。

    2. 在onCreateView方法中,根据用户是否已登录,设置显示的用户名或登陆/注册按钮的文本。如果用户已登录,则显示"Hi + 用户名",并将登陆/注册按钮设置为不可点击。如果用户未登录,则显示"登陆 | 注册",并为登陆/注册按钮设置点击事件,点击后跳转到LoginActivity。

    3. 在tvQuit的点击事件中,判断用户是否已登录。如果用户未登录,则弹出提示信息。如果用户已登录,则执行退出登录的逻辑。

    4. initView方法用于初始化各个控件,通过findViewById方法找到对应的控件并赋值给相应的成员变量。

    接下来是对应java文件代码:

    package com.example.calculator.Fragment;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    import androidx.fragment.app.Fragment;
    import com.example.calculator.MainActivity;
    import com.example.calculator.R;
    import com.example.calculator.RegisterLogin.LoginActivity;
    public class MineFragment extends Fragment {
        private ImageView imageView2;
        private TextView tvUser;
        private TextView textView3;
        private TextView textView4;
        private ImageView imageView3;
        private View view2;
        private TextView textView5;
        private ImageView imageView4;
        private View view3;
        private TextView tvQuit;
        private ImageView imageView5;
        public MineFragment() {
        }
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
        }
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.fragment_mine, container, false);
            initView(view);
            if (!username.isEmpty()) {
                tvUser.setText("Hi " + username);
                tvUser.setClickable(false);
            } else {
                tvUser.setText("登陆 | 注册");
                tvUser.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent(getActivity(), LoginActivity.class);
                        startActivity(intent);
                    }
                });
            }
            tvQuit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 判断是否已登录
                    String username = mSharedPreferences.getString("username", "");
                    if (username.isEmpty()) {
                        Toast.makeText(getActivity(), "请先登录后在尝试!", Toast.LENGTH_SHORT).show();
                        return;
                    }
                }
            });
            return view;
        }
        private void initView(View view) {
            imageView2 = view.findViewById(R.id.imageView2);
            tvUser = view.findViewById(R.id.tv_user);
            textView3 = view.findViewById(R.id.textView3);
            textView4 = view.findViewById(R.id.textView4);
            imageView3 = view.findViewById(R.id.imageView3);
            view2 = view.findViewById(R.id.view2);
            textView5 = view.findViewById(R.id.textView5);
            imageView4 = view.findViewById(R.id.imageView4);
            view3 = view.findViewById(R.id.view3);
            tvQuit = view.findViewById(R.id.tv_quit);
            imageView5 = view.findViewById(R.id.imageView5);
        }
    }

            至此,完整的计算器项目就创建完成了。

    五、项目运行

    1.图片演示

    (1)运行app到模拟器上,显示启动页面:

    基于Android Studio 实现计算器(简单易上手使用技术多) 第8张

    (2)首页页面:

    基于Android Studio 实现计算器(简单易上手使用技术多) 第9张

    (3)我的页面:

    基于Android Studio 实现计算器(简单易上手使用技术多) 第10张

    (4)登录页面:

    基于Android Studio 实现计算器(简单易上手使用技术多) 第11张

    (5)注册页面:

    基于Android Studio 实现计算器(简单易上手使用技术多) 第12张

    2.视频演示

    Android Studio 实现计算器App

            运行效果和功能很完整,至此就完成了非常简单的计算器。大家可以跟着动手做一下,放上自己喜欢的Logo,科技感真的不要太好!

    六、项目总结

            在启动页面中,我们实现了一个倒计时功能,用于展示应用的启动画面,并在倒计时结束后自动跳转到登陆注册页面。

            在登陆注册页面中,我们使用了SQLite数据库来存储用户的账号和密码信息。用户可以通过注册功能创建新的账号,并通过登陆功能进行账号的验证和登陆。

    首页使用了FrameLayout进行页面的切换,通过底部导航栏或侧边栏可以切换不同的子页面。其中,计算器页面实现了基本的数学运算功能,用户可以输入数字和操作符,计算器会显示计算结果。

            我的页面显示了当前登陆用户的用户名,并提供了退出登录功能,用户可以点击按钮退出当前账号。

            在整个项目的开发过程中,我们使用了Android Studio作为开发工具,使用Java语言进行编码。通过这个项目,我们学习和应用了许多常见的Android开发技术,如UI设计、事件处理、布局管理、数据存储等。


    七、获取源码

    关注公众号《编程乐学》,后台回复:23112301

    👇👇👇快捷获取方式👇👇👇


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]