精华内容
下载资源
问答
  • Android课程设计

    2014-11-26 09:56:06
    包含Android课程设计的题目,及要求
  • android 课程设计

    2014-11-16 22:26:23
    基于Android平台的绿色浏览器 功能要求:1、浏览器基本功能:前进后退历史记录等。2.云书签、收藏夹功能 实现要求:客户端基于Android,服务端技术自定 用例场景:换手机后,之前收藏的网站都没有了~~~~~~~ 如果...
  • Android课程设计简单实用课程表项目
  • Android课程设计之视频播放器,实现了一个本地视频播放器,并写出相应的课程设计
  • Android课程设计图书管理完整代码
  • Android课程设计源码仿QQ音乐播放器安卓版项目
  • Android课程设计简易计算器and保存记录 精品文档 精品文档 收集于网络如有侵权请联系管理员删除 收集于网络如有侵权请联系管理员删除 精品文档 收集于网络如有侵权请联系管理员删除 Android课程设计简易计算器and...
  • Android课程设计源码空气质量指数和PM2.5应用
  • 题目山东交通学院课程设计报告PAGE 2PAGE 1Android课程设计报告书题目:RFID药品WMS仓库管理系统院(系)别 交通与物流工程学院专 业 物联网工程专业班 级 物联132成 员 伊 华 130516234宫玮钰 130516229刘文清 ...

    题目

    山东交通学院课程设计报告

    PAGE 2

    PAGE 1

    Android课程设计报告书

    题目:RFID药品WMS仓库管理系统

    院(系)别 交通与物流工程学院

    专 业 物联网工程专业

    班 级 物联132

    成 员 伊 华 130516234

    宫玮钰 130516229

    刘文清 130516238

    指导教师 贾 雁

    二○一六年六月

    目 录

    一、 TOC \o "1-3" \h \z \u HYPERLINK \l _Toc24579 摘要2

    二、 HYPERLINK \l _Toc15674 课题及要求3

    三、 HYPERLINK \l _Toc19173 程序功能简介3

    四、主体内容 HYPERLINK \l _Toc32070 3

    HYPERLINK \l _Toc1750 4.1设计分析 3

    4.2程序结构图 HYPERLINK \l _Toc18743 3

    HYPERLINK \l _Toc20589 4.3模块功能及程序说明4

    HYPERLINK \l _Toc20589 4.3.1登录界面4

    HYPERLINK \l _Toc20589 4.3.2注册信息6

    HYPERLINK \l _Toc20589 4.3.3选项卡操作10

    五、总结 HYPERLINK \l _Toc22727 16

    六、参考文献 HYPERLINK \l _Toc1562 17

    摘要

    随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地的查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样业务。因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。在如今这个智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统。它的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。本文是关于Android技术基础的RFID药品WMS仓库管理系统。

    关键字:Android 智能手机 仓库管理系统

    课题及要求

    1、课题:RFID药品WMS仓库管理系统

    2、目的:

    1)复习、巩固Android相关技术的基础知识,进一步加深对Android开发技术的理解和掌握;

    2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力;

    3)培养学生在项目开发中团队合作精神、创新意识及能力。

    3、要求:

    1)对系统进行功能模块分析,符合课题要求,实现相应功能

    2)系统设计要实用,编程简练,可用,功能全面

    3)说明书、流程图要清楚

    程序功能简介

    经过一系列的编程与实验之后,能够实现简单的一下操作:

    登录界面,实现药品的入库、移库、盘点、药品有效期提醒、出库等功能。

    主体内容

    4.1设计分析

    这是一个基于Android技术基础的RFID药品WMS仓库管理系统。,这次的课程设计我们主要是应用现有的Eclipse软件,实现药品仓库管理的相关操作。设计中包括用户界面登录和操作界面。在登录界面又包括注册跟登录及密码的设置,在操作界面包含入库管理、移库管理、出库管理、盘点查询及有效期提醒等。

    4.2程序结构图

    SHAPE \* MERGEFORMAT 4.3模块功能及程序说明

    4.3.1登录界面

    android:layout_height="wrap_content"

    android:layout_width="200sp"

    android:id="@+id/edi1"

    android:hint="请输入用户名"

    android:textColor="@drawable/gaoliang"

    android:singleLine="true"

    andro

    展开全文
  • Android课程设计源码

    2018-06-25 19:56:23
    本项目是一个基于安卓的简单学生管理系统毕设作品,核心功能就是短信群发和json数据批量导入数据库。
  • 课 程 设 计 说 明 书 课程名称 软件工程课程设计 题 目 记事本程序 院 系 班 级 学生 指导教师 日 期 2011-6-24 目录 TOC \o "1-3" \h \z \u 课程设计任务书 1 安卓应用程序开发背景 2 安卓应用程序开发理论与方法 ...
  • 一个特别简单的闹钟,仅用于课程设计作业。包含本地数据库,定时任务,后台服务。基于Android 9,Java 8,构建工具版本28.0.3,构建插件版本3.2.1,构建版本5.1.1。
  • Android课程设计(健康管理软件开发)

    千次阅读 2020-06-15 00:18:34
    Android 课程设计 Android开发使用软件(RecyclerView+ListView+SQLite) 一个实用的健康管理软件,可以查询各种食物的热量,每天健身打卡,发表动态,可以点击图片链接进入淘宝首页,在个人中心可以修改收货地址,...

    Android 课程设计

    Android开发使用软件(RecyclerView+ListView+SQLite)

    一个实用的健康管理软件,可以查询各种食物的热量,每天健身打卡,发表动态,可以点击图片链接进入淘宝首页,在个人中心可以修改收货地址,添加购物车,记录健康资料、每日饮食(收货地址和购物车仅关联此软件)

    实现的功能

    1. 用户登录 ,进入首页自动跳转至登录页面;
    2. 登录成功,进入首页 查询各种食物的热量
    3. 健康打卡页面 ,可以进行每日健身打卡,自定义添加打卡项目
    4. 发布动态页面 ,可以添加图片(此处功能还需完善);
    5. 商店页面 ,点击图片链接进入淘宝首页
    6. 个人中心 ,查看、修改购物车、收货地址、健康资料,记录每日饮食

    使用框架

    1.使用第三方图像框架 Fresco 图片圆形设置(头像)

    1.添加依赖

    dependencies {
          compile 'com.facebook.fresco:fresco:0.14.1'
    }
    

    2.初始化

    public class MyApplication extends Application{
    
        @Override
        public void onCreate() {
            super.onCreate();
            Fresco.initialize(this);
        }
    }
    

    3.修改 manifest

    android:name=".MyApplication"
    

    4.添加网络权限

    <uses-permission android:name="android.permission.INTERNET"/>
    

    5.文件布局

    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    

    使用

    <com.facebook.drawee.view.SimpleDraweeView
            android:id="@+id/headimg"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_marginTop="160dp"
            app:layout_constraintStart_toStartOf="@+id/textView6"
            app:layout_constraintTop_toTopOf="@+id/imageView6"
            app:srcCompat="@drawable/headimg"
            android:background="@drawable/headimg"
            fresco:roundAsCircle="true"
            fresco:roundedCornerRadius="20dp" />
    

    6.使用

    SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.headimg);
            Uri uri = Uri.parse("headimg.jpg");
            draweeView.setImageURI(uri);
    

    1.使用第三方框架banner 图片轮播效果
    1.依赖

    //轮播依赖
        implementation'com.youth.banner:banner:1.4.10'
    //Glide框架
        implementation "com.github.bumptech.glide:glide:4.6.1"
    

    2.添加权限到 AndroidManifest.xml

    <uses-permission android:name="android.permission.INTERNET" /> //网络权限
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> //读取SD卡
    
    

    3.在布局文件中添加Banner

    <com.youth.banner.Banner
            android:id="@+id/banner"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:layout_marginTop="50dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/imageButton" />
    

    4.实现

    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_shop);
            initView();
    }
    public void initView() {
            mBanner = findViewById(R.id.mBanner);
            //图片资源
            int[] imageResourceID = new int[]{R.mipmap.i1, R.mipmap.i2, R.mipmap.i3, R.mipmap.i4,R.mipmap.i5, R.mipmap.i6};
            List<Integer> imgeList = new ArrayList<>();
            //轮播标题
            String[] mtitle = new String[]{"图片1", "图片2", "图片3", "图片4","图片5","图片6"};
            List<String> titleList = new ArrayList<>();
    
            for (int i = 0; i < imageResourceID.length; i++) {
                imgeList.add(imageResourceID[i]);//图片资源循环
                titleList.add(mtitle[i]);//标题循环设置
                //设置图片加载器,通过Glide加载图片
                mBanner.setImageLoader(new ImageLoader() {
                    @Override
                    public void displayImage(Context context, Object path, ImageView imageView) {
                        Glide.with(ShopActivity.this).load(path).into(imageView);
                    }
                });
                //轮播的动画效果
                mBanner.setBannerAnimation(Transformer.Accordion);
                mBanner.setImages(imgeList);//设置图片资源
                mBanner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);//设置banner显示样式(带标题的样式)
                mBanner.setBannerTitles(titleList); //设置标题集合(当banner样式有显示title时)
                //设置指示器位置
                mBanner.setIndicatorGravity(BannerConfig.CENTER);
                mBanner.setDelayTime(1000);//设置轮播时间3秒切换下一图
                mBanner.setOnBannerListener(this);//设置监听
                mBanner.start();//开始进行banner渲染
            }
        }
    
        @Override
        protected void onStart() {
            super.onStart();
            mBanner.startAutoPlay();//开始轮播
        }
    
        @Override
        protected void onStop() {
            super.onStop();
            mBanner.stopAutoPlay();//结束轮播
        }
    
        //对轮播图设置点击监听事件
        @Override
        public void OnBannerClick(int position) {
            Toast.makeText(this, "你点击了第" + (position + 1) + "张轮播图", Toast.LENGTH_SHORT).show();
        }
    
    

    UI设计

    1.带有弹出收缩动画的扇形菜单

    插入链接与图片

    参考博客
    链接: Android菜单动画扇形收缩.

    在这里插入图片描述
    1.布局文件

    <Button
            android:id="@+id/button9"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_gravity="bottom|end"
            android:layout_marginBottom="40dp"
            android:layout_marginRight="40dp"
            android:gravity="center"
            android:text="照片"
            android:textColor="#000000"
            android:visibility="gone"
            android:background="@drawable/circle_green"/>
    
    
        <Button
            android:id="@+id/button10"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_gravity="bottom|end"
            android:layout_marginBottom="40dp"
            android:layout_marginRight="40dp"
            android:gravity="center"
            android:text="标签"
            android:textColor="#000000"
            android:visibility="gone"
            android:background="@drawable/circle_green"/>
    
        <ImageView
            android:id="@+id/img_publish"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_gravity="bottom|end"
            android:layout_marginEnd="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginBottom="20dp"
            android:src="@drawable/cd2_2"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent" />
    

    2.Activity

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_show);
            imgPublish = (ImageView) findViewById(R.id.img_publish);
            imgPublish.setOnClickListener(this);
            }
            @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.img_publish:
    
                    if (!isMenuOpen) {
                        showOpenAnim(80);
                        imgPublish.setImageResource(R.mipmap.cd2_2);
                    }else {
                        showCloseAnim(80);
                        imgPublish.setImageResource(R.mipmap.cd2_2);
                    }
                    break;
            }
    
        }
    
        //打开扇形菜单的属性动画, dp为半径长度
        private void showOpenAnim(int dp) {
            button9.setVisibility(View.VISIBLE);
            button10.setVisibility(View.VISIBLE);
    
    
            //for循环来开始小图标的出现动画
            for (int i = 0; i < buttons.size(); i++) {
                AnimatorSet set = new AnimatorSet();
                //标题1与x轴负方向角度为20°,标题2为100°,转换为弧度
                double a = -Math.cos(20 * Math.PI / 180 * (i * 2 + 1));
                double b = -Math.sin(20 * Math.PI / 180 * (i * 2 + 1));
                double x = a * dip2px(dp);
                double y = b * dip2px(dp);
    
                set.playTogether(
                        ObjectAnimator.ofFloat(buttons.get(i), "translationX", (float) (x * 0.25), (float) x),
                        ObjectAnimator.ofFloat(buttons.get(i), "translationY", (float) (y * 0.25), (float) y)
                        , ObjectAnimator.ofFloat(buttons.get(i), "alpha", 0, 1).setDuration(2000)
                );
                set.setInterpolator(new BounceInterpolator());
                set.setDuration(500).setStartDelay(100);
                set.start();
    
                set.addListener(new Animator.AnimatorListener() {
                    @Override
                    public void onAnimationStart(Animator animation) {
    
                    }
    
                    @Override
                    public void onAnimationEnd(Animator animation) {
    
                        //菜单状态置打开
                        isMenuOpen = true;
                    }
    
                    @Override
                    public void onAnimationCancel(Animator animation) {
    
                    }
    
                    @Override
                    public void onAnimationRepeat(Animator animation) {
    
                    }
                });
            }
    
            //转动加号大图标本身45°
            ObjectAnimator rotate = ObjectAnimator.ofFloat(imgPublish, "rotation", 0, 90).setDuration(300);
            rotate.setInterpolator(new BounceInterpolator());
            rotate.start();
    
        }
    
        //关闭扇形菜单的属性动画,参数与打开时相反
        private void showCloseAnim(int dp) {
    
    
            //for循环来开始小图标的出现动画
            for (int i = 0; i < buttons.size(); i++) {
                AnimatorSet set = new AnimatorSet();
                double a = -Math.cos(20 * Math.PI / 180 * (i * 2 + 1));
                double b = -Math.sin(20 * Math.PI / 180 * (i * 2 + 1));
                double x = a * dip2px(dp);
                double y = b * dip2px(dp);
    
                set.playTogether(
                        ObjectAnimator.ofFloat(buttons.get(i), "translationX", (float) x, (float) (x * 0.25)),
                        ObjectAnimator.ofFloat(buttons.get(i), "translationY", (float) y, (float) (y * 0.25)),
                        ObjectAnimator.ofFloat(buttons.get(i), "alpha", 1, 0).setDuration(2000)
                );
    //      set.setInterpolator(new AccelerateInterpolator());
                set.setDuration(500);
                set.start();
    
                set.addListener(new Animator.AnimatorListener() {
                    @Override
                    public void onAnimationStart(Animator animation) {
    
                    }
    
                    @Override
                    public void onAnimationEnd(Animator animation) {
    
                        button9.setVisibility(View.GONE);
                        button10.setVisibility(View.GONE);
    
                        //菜单状态置关闭
                        isMenuOpen = false;
                    }
    
                    @Override
                    public void onAnimationCancel(Animator animation) {
    
                    }
    
                    @Override
                    public void onAnimationRepeat(Animator animation) {
    
                    }
                });
            }
    
    
            //转动加号大图标本身45°
            ObjectAnimator rotate = ObjectAnimator.ofFloat(imgPublish, "rotation", 0, 90).setDuration(300);
            rotate.setInterpolator(new BounceInterpolator());
            rotate.start();
    
    
        }
    
        private int dip2px(int value) {
            float density = getResources()
                    .getDisplayMetrics().density;
            return (int) (density * value + 0.5f);
        }
    

    演示

    • 点击进入
      自动跳转
    //android实现欢迎界面的自动跳转,就是打开某一个安卓手机应用,出现的欢迎界面停留几秒钟,自动进入应用程序的主界面。
            //在onCreate里设置个Timer,然后建立Intent指向你要调用Activity。设置Timer 10妙后执行startActivity就行了。
            final Intent it = new Intent(this, Login2Activity.class); //你要转向的Activity
            Timer timer = new Timer();
            TimerTask task = new TimerTask() {
                @Override
                public void run() {
    
                    startActivity(it); //执行
    
                }
    
            };
            timer.schedule(task, 1000 * 5); //5秒后
    
    • 首页
      Activity跳转传值,获取登录时输入的用户名
      -RecyclerView显示食物列表
      查询
    1. 连接数据库
    2. 弹出提示框显示
      在这里插入图片描述
    • 首页
      -RecyclerView显示打卡记录
      1.添加打卡
      2.勾选checkbox进行打卡,弹出提示
      在这里插入图片描述

    在这里插入图片描述

    • 发布动态页面
      -EditText输入
      1.调用图库插入图片
      2.插入标签
      在这里插入图片描述

    在这里插入图片描述

    • 商店页面
      WebView,第三方框架banner 图片轮播效果(未显示)
      1.点击图片链接进入淘宝首页
      在这里插入图片描述

    • 个人中心
      RecyclerView显示动态,三种类型Dialog应用
      1.复选框显示购物车
      2.半自定义记录每日饮食
      3.查看健康记录
      4.单选框设置收货地址
      在这里插入图片描述
      在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    改进
    1.EditText图文混排依然存在问题,可以调用图库但图片不能显示

    展开全文
  • 简单的安卓类小程序app 可以下着学习代码看看学习 不能作为正式商业软件用,学习代码练习的时候可以用
  • Android课程设计报告

    2013-01-04 18:59:27
    对应于手机邮件发送器的课程设计报告,可以当做是该项目的使用说明。可以下载项目。
  • 河北科技大学 课程设计报告 号学生姓名 学 班 计算机 专业班级 课程名称 Android智能手机软件开发 第一学期学年学年学期 2011 高凯指导教师 月2 0 11 年 12 课程设计成绩评定表 学生姓名 学 号 成绩 专业班级 起止...
  • 这是一个android的课设,一个记账本,界面美观,我的运行环境是Android studio,虽然是记账本,但是代码量和项目,适合大学4-6人课设完全够用
  • 课程设计;2;3;4;5;6;7;3.1 拟解决的问题及目标 本计算器程序要解决日常生活中常见的基本数据计算问题程序要实现的 目标有如下几个 要实现基本的加减乘除四则运算 可以实现在前一步计算结果上继续作加减乘除即连加减 ...
  • 用于安卓课程设计的飞机大战 实现功能: 基本飞机大战所需功能都有 外加强化道具爆出 子弹类型道具爆出,并升级飞机机型 敌方飞机多样性
  • 之前在Javaweb的课程设计上做了一个图书管理系统的管理员端,所以这次的Android课程设计想做一个学生端。这是一个基于Android开发出的一个简单的app,app的功能也相对的比较简单,基本应该就是几个按钮与几个页面...

    简介

    之前在Javaweb的课程设计上做了一个图书管理系统的管理员端,所以这次的Android课程设计想做一个学生端。这是一个基于Android开发出的一个简单的app,app的功能也相对的比较简单,基本应该就是几个按钮与几个页面跳转的事情。

    bmob后端

    首先先做一点准备工作,由于这次做的这个app是使用bmob后端来存储数据的,所以我们要先导入bmob的sdk。关于bmob的SDK导入这块就不多讲了,我们进入bmob的官网点击文档然后再点击数据服务中的Android就能找到关于Android的帮助文档,按帮助文档前面的内容走一遍就基本能完成其SDK的导入了。
    然后其实关于app涉及到bmob这块最重要的应该是如何获取到存储在bmob里面的数据了。如何获取数据在帮助文档里面也有,但在这里我还是想举点代码的例子。

    BmobQuery<stu> bmobQuery = new BmobQuery<stu>();
    bmobQuery.addWhereEqualTo("id",sid);
    bmobQuery.findObjects(new FindListener<stu>() {
        String s1;
        String s2;
        int in1 = 2;
        int in2 = 3;
        @SuppressLint("WrongConstant")
        @Override
        public void done(List<stu> list, BmobException e) {
            if(e==null){
    
                int  n = list.size();
                for(int i = 0; i < n; i++){
                    s1 = list.get(i).getId();
                    s2 = list.get(i).getName();
                    in1 = list.get(i).getFraction();
                    in2 = list.get(i).getUnreturnbooknum();
                    book b=new book(s1+"",s2+"",in1,in2);
    
                }
    
            }else{
                Toast.makeText(showstudenttip.this, "失败:", 5000).show();
            }
            tsid.setText(sid);
            tsname.setText(s2);
            tsfra.setText(in1+"");
            tunreturn.setText(in2+"");
        }
    });

    如上图的代码,其功能是查找数据库中的stu表一条sid等于所给的id的数据,然后将这条数据的各列数据获取出来。在代码中,list是用来存储获取回来的数据,e是判断查找是否成功,其实在大多数情况下我们用不到e。而在bmob的帮助文档中,if{}里面的语句是判断有多少条函数而没有对返回的数据进行一一的获取,但这其实也只是设计到list集合的问题,可能这对大多数大牛来说不算什么问题,但如果是不想细看帮助文档的人或者基础不太好的小白来说我这里就也算提供一点帮助吧,如果你是将数据放到listview上也可以直接将list给到适配器,这个帮助文档里面有。然后我这里就将关于查询bmob数据的问题,增删改就不讲了,主要我这app也没涉及到。

    页面布局

    在这里插入图片描述在这里插入图片描述
    这是欢迎页面与登录页面,其大概的内容也只是改了一下背景色,加了几个文本框和几个按钮,都是一些挺基本的东西,如果觉的页面单调其实添加一些背景图或者改变一下布局就可以了,因为本人美学这块比较差,所以没有过多的去扣。然后这里其实我是把每个页面最上面的那个标题都去掉了,这个将styles.xml中的那段改为下面这样就好:

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

    然后关于页面布局的内容就也不多讲了,如果想调一下按钮的大小或者字体什么的在百度上面找一下相关的参数就好,有难度的应该就是listview这块。

    id的存放

    这里id的存放主要是值当前在app中登录进来的用户id,在后续对数据库的查询都是以这个id为索引的,通过id的值来查询数据库获取其相应的数据信息。而在这里为什么要讲这个id呢?其实是为了方便后续的操作。我们先写一个idclass的类,然后该类中只有一个static的变量,即静态变量,它的作用是用idclass定义的任何对象该静态变量的值都是相等的,而我们也可以直接通过该idclass类来直接引用这个对象。我们如果在用户登录成功后就把该静态变量赋值为用户id的值的话,我们在后续页面跳转时就不用涉及到id的传递了,我们可以在遇到用户id的页面直接通过该静态变量来获取当前用户的id。

    清理Task栈

    这里的Task栈指的是什么呢?其实我们在进行页面跳转时,所有页面都会都会像我们在数据结构所学的栈一样,先进来的页面在最底下,然后每跳转一个页面就等于一个页面的进栈,所以当我们按手机上的返回键时就会回到我们跳转前的页面。而在什么时候需要清理task栈呢?比如我们在登录时登录成功就会跳转到主页面,而如果我们想我们在主页面点击返回按钮时会退出app就要在我们的登录页面中跳转到主页面的意图中加上一句语句,如下图代码所示。而如果我们想在主页面按返回按键时返回到我们的登录页面就不需要加。但在某些时候时一定要加的,当我们在一些页面上设置了返回按钮来返回到我们主页面时就最好加上,因为不加的话,我们点击手机上的返回按键的话就会返回到这个页面,这是不合我们制作的逻辑的。

    Intent i = new Intent();
    idclass.id=sid;
    i.setClass(bllogin.this,MainActivity.class);
    //清理Task栈,并创建新的Task栈
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(i);

    页面代码

    在讲完上面的东西之后其实做这个app的大概内容也差不多讲了大半了,页面布局、bmob数据库获取数据,task栈的清理。然后最后讲一些我们的activity代码,这里我也是按照我的习惯,重复的东西讲一个,所有的activity代码其实都是一样的,只是一些逻辑语句上的不同。下面这个是我主页面的代码,定义了几个Button变量,然后根据相应的变量名用findViewById()函数赋给他们相应的按钮控件,然后为这些按钮控件设置监听,可以一个个设也可以用switch来设置,我这里比较笨一点吧。在各个监听中定义意图这些意图再根据设计逻辑让他们跳转到对应的页面。

    public class MainActivity extends AppCompatActivity {
        Button showstudent;
        Button showhistory;
        Button showbook;
        Button out;
        String mainsid;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //Intent imain = getIntent();
            mainsid = idclass.id;//imain.getStringExtra("id");
            showstudent = findViewById(R.id.mainstutip);
            showhistory = findViewById(R.id.mainshowreadhistory);
            showbook = findViewById(R.id.mainshowbook);
            out = findViewById(R.id.mainout);
    
            //个人主页
            showstudent.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent i = new Intent();
                    i.setClass(MainActivity.this,showstudenttip.class);
                    startActivity(i);
                }
            });
    
            //图书查询
            showbook.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v) {
                    Intent i = new Intent();
                    i.setClass(MainActivity.this,showbookscanf.class);
                    startActivity(i);
                }
            });
    
            //借阅历史查询
            showhistory.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent i = new Intent();
                    i.setClass(MainActivity.this, showreaderhistory.class);
                    startActivity(i);
                }
            });
            //退出
            out.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent i = new Intent();
                    i.setClass(MainActivity.this,bllogin.class);
                    //清理Task栈,并创建新的Task栈
                    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(i);
                }
            });
        }
    }
    

    总结

    这个课程设计大概零零碎碎花了我几天时间吧,其实如果你会用bmob的话可以更短一点,然后难度基本上不是很大,这里讲的也不是很多,因为都是一些比较基础的东西,数据库也只用到了查询的功能。如果需要源码的话联系我。

    展开全文
  • android课程设计 备忘录

    千次阅读 热门讨论 2020-06-10 21:02:14
    数据存储设计 2.1 SharedPrefenrences/文件存储/SQLite存储介绍 SharedPrefenrences : SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此...

    源码放到GitHub上了,大家可以看一下 https://github.com/become-better1/hh

    1.系统需求分析
    1.1 系统功能及框图
    该项目实现了备忘录的创建,修改,删除,查询,对备忘录数目的统计和软件的说明。
    1.2 系统需求
    功能 说明
    备忘录的创建 主键自动生成,将控件中的数据对Word字段进行赋值
    备忘录的修改 将控件中的数据对Word字段进行赋值,查询条件是与原先的Word字段相等
    备忘录的查询 对Word字段进行查询,查询条件是与控件中的数据相等
    备忘录的删除 按照Word字段进行删除,查询条件是与控件中的数据相等
    备忘录数目的统计 通过SharedPrefenrences来存储和读取数据
    软件的说明 进一步的描述

    1.3 该项目涉及到的技术点
    界面控件:TextView,EditText,Button,ImageButton,ListView,View
    布局:线性布局
    事件:监听事件
    数据存储:SharedPrefenrences,SQLite存储
    Activity和Intent
    2.数据存储设计
    2.1 SharedPrefenrences/文件存储/SQLite存储介绍
    SharedPrefenrences :
    SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。
    SharedPreferences提供了java常规的Long、Int、String等类型数据的保存接口。 [SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问。
    提示最终是以xml方式来保存,整体效率来看不是特别的高,对于常规的轻量级而言比SQLite要好不少,如果真的存储量不大可以考虑自己定义文件格式。xml处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好。
    文件存储
    文件存储是Android中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动的保存到文件当中,因而它比较适合用于存储一些简单的文本数据或者二进制数据。如果你想使用文件存储的方式来保存一些较为复杂的文本数据,就需要定义一套自己的格式规范以方便将数据从文件中重新解析出来。
    Context类中提供了一个openFileOutput()方法,可以用于将数据存储到指定的文件中。这个方法有两个参数,第一个参数是文件名,在文件创建的时候使用的就是这个名称,(文件的位置是默认 存储到/data/data/packagename/files/目录下的)第二个参数就是文件的操作模式,主要有两种模式可选:MODE_PRIVATE和 MODE_APPEND,其中MODE_PRIVATE是默认的操作模式,表示当指定文件已存在,所写入的内容将会覆盖源文件中的内容,而MODE_APPEND则表示如果该文件已存在,就往文件里追加内容,不存在就创建新文件

    SQLite存储
    ①SQLite是一个轻量级的关系型数据库,运算速度快,占用资源少,很适合在移动设备上使用, 不仅支持标准SQL语法,还遵循ACID(数据库事务)原则,无需账号,使用起来非常方便!
    ②但是在很多情况下, 文件并不一定是有效的,如多线程并发访问是相关的;app要处理可能变化的复杂数据结构等等! 比如银行的存钱与取钱!使用前两者就会显得很无力或者繁琐,数据库的出现可以解决这种问题, 而Android又给我们提供了这样一个轻量级的SQLite,为何不用?
    ③SQLite支持五种数据类型:NULL,INTEGER,REAL(浮点数),TEXT(字符串文本)和BLOB(二进制对象) 虽然只有五种,但是对于varchar,char等其他数据类型都是可以保存的;因为SQLite有个最大的特点:你可以各种数据类型的数据保存到任何字段中而不用关心字段声明的数据类型是什么,比如你 可以在Integer类型的字段中存放字符串,当然除了声明为主键INTEGER PRIMARY KEY的字段只能够存储64位整数! 另外, SQLite 在解析CREATE TABLE 语句时, 会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息如下面语句会忽略 name字段的类型信息:CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))

    2.2数据表结构
    给出使用的数据库的逻辑结构,需要说明各字段属性及含义

    Id:作为主键,自带生成
    Word:进行存储备忘录的信息
    SharedPrefenrences代码

    
    ```java
    SharedPreferences sharedP=getSharedPreferences("SaveTable",MODE_PRIVATE);
    SharedPreferences.Editor editor=sharedP.edit();
    int num=sharedP.getInt("number", 0);
    num++;
    editor.putInt("number", num);
    editor.commit();
    
    
    数据库封装代码:
    
    ```java
    package com.example.coursedesign;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    
    public class DBOpenHelper extends SQLiteOpenHelper {
        final String CREATE_TABLE_SQL="create table myTable(_id integer primary key autoincrement,word text)";
        public static final String name = "myDb";
        public static final String table_name = "myTable";
        public DBOpenHelper( Context context, String name,  SQLiteDatabase.CursorFactory factory, int version) {
            super(context, name, null, version);
        }
    
        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(CREATE_TABLE_SQL);
        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            Log.i("生活小助手","--版本更新"+oldVersion+"-->"+newVersion);
        }
        public List<String> readAll () {
            List<String> allCommodities = new ArrayList<String>();
            SQLiteDatabase db = this.getWritableDatabase();
            Cursor cursor = db.rawQuery("select * from myTable order by _id",null);
            if(cursor.moveToFirst()) {
                do {
                    String title = cursor.getString(cursor.getColumnIndex("word"));
                    allCommodities.add(title);
                }while (cursor.moveToNext());
            }
            cursor.close();
            return allCommodities;
        }
        public boolean addMyCollection(String s) {
            SQLiteDatabase db = this.getWritableDatabase();
            ContentValues values = new ContentValues();
            values.put("word",s);
            db.insert(table_name,null,values);
            values.clear();
            return true;
        }
        public void delete(String word) {
            SQLiteDatabase db = this.getWritableDatabase();
            if(db.isOpen()) {
             db.delete(table_name,"word=?",new String[]{word+""});
                db.close();
            }
        }
    
        public boolean update (String word,String wordP) {
            SQLiteDatabase db = this.getWritableDatabase();
            String sql = "update  myTable set word=? where word=?";
            String[] obj = new String[]{word,wordP};
            db.execSQL(sql,obj);
            return true;
        }
    }
    

    3.具体编码及截图
    3.1 主界面
    通过listView来显示所有的备忘录,界面含有主页,刷新,添加,个人中心的功能。
    在这里插入图片描述
    界面代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@drawable/blue"
        tools:context="com.example.coursedesign.MainActivity" >
    
        <ListView
            android:id="@+id/main_list"
            android:layout_width="match_parent"
            android:layout_height="370dp"
            android:layout_marginTop="4dp"
            android:layout_weight="1.19" />
    
        <View
            android:id="@+id/view1"
            android:layout_width="match_parent"
            android:layout_height="2dp"
            android:layout_marginTop="50dp"
            android:background="@drawable/green" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
    
            <ImageButton
                android:id="@+id/ib_home_page"
                android:layout_width="58dp"
                android:layout_height="55dp"
                android:src="@drawable/home" />
    
            <View
                android:id="@+id/view2"
                android:layout_width="2dp"
                android:layout_height="55dp"
                android:background="@drawable/green" />
    
            <ImageButton
                android:id="@+id/ib_add_product"
                android:layout_width="58dp"
                android:layout_height="55dp"
                android:src="@drawable/add" />
    
            <View
                android:id="@+id/view3"
                android:layout_width="2dp"
                android:layout_height="55dp"
                android:background="@drawable/green" />
    
            <ImageButton
                android:id="@+id/refresh"
                android:layout_width="58dp"
                android:layout_height="55dp"
                android:src="@drawable/refresh" />
    
            <View
                android:id="@+id/view4"
                android:layout_width="2dp"
                android:layout_height="55dp"
                android:background="@drawable/green" />
    
            <ImageButton
                android:id="@+id/ib_personal_center"
                android:layout_width="50dp"
                android:layout_height="55dp"
                android:layout_weight="0.84"
                android:src="@drawable/person" />
        </LinearLayout>
    
       </LinearLayout>
    

    后台代码:

    package com.example.coursedesign;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.ImageButton;
    import android.widget.ListView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
       ImageButton buttonRefresh;
       ImageButton  buttonAdd;
       ImageButton buttonHome;
       ImageButton buttonPerson;
       DBOpenHelper dbHelper;
       List<String> listString=new ArrayList<String>();
       ListView listview;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		dbHelper = new  DBOpenHelper(getApplicationContext(),DBOpenHelper.name , null, 1);
    		buttonRefresh=(ImageButton) findViewById(R.id.refresh);//刷新
    		listview=(ListView) findViewById( R.id.main_list);
    		 buttonRefresh.setOnClickListener(new View.OnClickListener() {
    	            @Override
    	            public void onClick(View v) {
    	                listString = dbHelper.readAllCommodities();
    	                ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,listString);
    	                listview.setAdapter(adapter);
    	            }
    	        });
    		 listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {///List
    	            @Override
    	            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    	                String s = (String) listview.getAdapter().getItem(position);
    	                Bundle bundle1 = new Bundle();
    	                bundle1.putInt("position",position);
    	                bundle1.putString("title",s);
    	                Intent intent = new Intent(MainActivity.this, ListViewActivity.class);
    	                intent.putExtras(bundle1);
    	                startActivity(intent);
    	            }
    	        });
    		 buttonAdd=(ImageButton) findViewById(R.id.ib_add_product);//Add
    		 buttonAdd.setOnClickListener(new View.OnClickListener() {
    	            @Override
    	            public void onClick(View v) {
    	            	  Intent intent = new Intent(MainActivity.this, AddActivity.class);
    	                  startActivity(intent);
    	            }
    	        });
    		 buttonHome=(ImageButton) findViewById(R.id.ib_home_page);//home
    		  buttonHome.setOnClickListener(new View.OnClickListener() {
    		            @Override
    		            public void onClick(View v) {
    		            	 Toast.makeText(getApplicationContext(), "已在主页", Toast.LENGTH_SHORT).show();
    		            }
    		        });
    		  buttonPerson=(ImageButton) findViewById(R.id.ib_personal_center);///person
    		  buttonPerson.setOnClickListener(new View.OnClickListener() {
    	            @Override
    	            public void onClick(View v) {
    	            	 Intent intent = new Intent(MainActivity.this, PersonActivity.class);
    	                  startActivity(intent);
    	            	 Toast.makeText(getApplicationContext(), "进入个人中心", Toast.LENGTH_SHORT).show();
    	            }
    	        });
    		 
    	}
    
    	
    }
    

    3.2 各功能模块
    添加备忘录:
    界面
    通过SQLite数据实现对备忘录的添加。
    在这里插入图片描述
    界面代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
         android:orientation="vertical"
         android:background="@drawable/blue"
        tools:context="com.example.coursedesign.AddActivity" >
       <View
            android:layout_width="match_parent"
            android:layout_height="50dp" />
        <EditText
            android:id="@+id/add_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入添加的信息" />
         <View
            android:layout_width="match_parent"
            android:layout_height="120dp" />
        <Button 
            android:id="@+id/add_button"
             android:layout_gravity="center_horizontal"
             android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="提交"
            />
    
    </LinearLayout>
    

    后台代码:

    package com.example.coursedesign;
    
    import android.app.Activity;
    import android.app.backup.SharedPreferencesBackupHelper;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class AddActivity extends Activity {
    
    	Button button;
    	EditText editText;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_add);
    		button=(Button) findViewById(R.id.add_button);
    		editText=(EditText) findViewById(R.id.add_text);
    		 button.setOnClickListener(new View.OnClickListener() {
    	            @Override
    	            public void onClick(View v) {
    	               String s=editText.getText().toString();
    	               DBOpenHelper dbHelper = new DBOpenHelper(getApplicationContext(), DBOpenHelper.name, null, 1);
    	               if(s!=null){
    	            	   if(dbHelper.addMyCollection(s)){
    	            		   Toast.makeText(getApplicationContext(), "添加成功", Toast.LENGTH_SHORT).show();
    	            		   SharedPreferences sharedP=getSharedPreferences("SaveTable",MODE_PRIVATE);
    	            		   SharedPreferences.Editor editor=sharedP.edit();
    	            		   int num=sharedP.getInt("number", 0);
    	            		   num++;
    	            		   editor.putInt("number", num);
    	            		   editor.commit();
    	            		   finish();
    	            	   }
    	            	   else{
    	            		   Toast.makeText(getApplicationContext(), "添加失败", Toast.LENGTH_SHORT).show();
    	            	   }
    	               }
    	            }
    	        });
    	}
    
    
    }
    

    删除和修改备忘录:
    通过SQLite数据实现对备忘录的修改和删除。

    界面:
    在这里插入图片描述
    界面代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@drawable/blue"
        tools:context="com.example.coursedesign.ListViewActivity" >
    
        <EditText
            android:id="@+id/listView_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="你好"
             />
        <View
            android:layout_width="match_parent"
            android:layout_height="120dp" />
        <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
         android:layout_gravity="center_horizontal">
              <View
            android:layout_width="20dp"
            android:layout_height="wrap_content" />
        <Button 
            android:id="@+id/listView_updata"
             android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="修改"
            />
         <View
            android:layout_width="90dp"
            android:layout_height="wrap_content" />
            <Button 
            android:id="@+id/listView_delete"
             android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="删除"
            />
        </LinearLayout>
        
    
    </LinearLayout>
    

    后台代码:

    package com.example.coursedesign;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class ListViewActivity extends Activity {
        EditText text;
        Button button_up;
        Button button_delete;
        int position;
        String str;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_list_view);
    		text=(EditText) findViewById(R.id.listView_text);
    		button_delete=(Button) findViewById(R.id.listView_delete);
    		button_up=(Button) findViewById(R.id.listView_updata);
    		Bundle b = getIntent().getExtras();
            if( b != null) {
            	str=b.getString("title");
            	//Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
            	  text.setText(str.toCharArray(), 0, str.length());
                position = b.getInt("position");
            }
            button_delete.setOnClickListener(new View.OnClickListener() {//delete
                @Override
                public void onClick(View v) {
                   DBOpenHelper dbHelper = new DBOpenHelper(getApplicationContext(), DBOpenHelper.name, null, 1);
                   dbHelper.deleteMyCollection(str);
                   Toast.makeText(getApplicationContext(), "删除成功", Toast.LENGTH_SHORT).show();
                   finish();
                }
            });
            button_up.setOnClickListener(new View.OnClickListener() {//delete
                @Override
                public void onClick(View v) {
                	String wordNew="";
                 wordNew=text.getText().toString();
                   DBOpenHelper dbHelper = new DBOpenHelper(getApplicationContext(), DBOpenHelper.name, null, 1);
                   if(dbHelper.updateUser(wordNew, str)){
                   Toast.makeText(getApplicationContext(), "更新成功", Toast.LENGTH_SHORT).show();
                   finish();
                   }
                }
            });
    	}
    
    
    }
    

    进入页面:
    通过使用Intent进行Activity的启动。
    界面:
    在这里插入图片描述

    界面代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
            android:orientation="vertical"
        android:background="@drawable/note2"
        tools:context="com.example.coursedesign.FirstActivity" >
       <View   android:layout_width="150dp"
           android:layout_height="79dp"/>
       <TextView android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="欢迎来到生活小助手"
            android:layout_gravity="center_horizontal"
           android:textColor="#68EE68"
           android:textSize="24dp"
           android:textStyle="bold"/>
         <View   android:layout_width="150dp"
           android:layout_height="79dp"/>
       <Button
           android:id="@+id/Loading"
              android:layout_width="70dp"
           android:layout_height="40dp"
           android:background="@drawable/green1"
           android:text="进入"
            android:layout_gravity="center_horizontal"
           android:textColor="#F24FFF"
           android:textSize="30dp"
           android:textStyle="bold"
           tools:ignore="MissingConstraints" />
    
    </LinearLayout>
    

    后台代码:

    package com.example.coursedesign;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageButton;
    
    public class FirstActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_first);
    		Button button=(Button) findViewById(R.id.Loading);
    		 button.setOnClickListener(new View.OnClickListener() {
    	            @Override
    	            public void onClick(View v) {
    	            	  Intent intent = new Intent(FirstActivity.this, MainActivity.class);
    	                  startActivity(intent);
    	            }
    	        });
    	}
    
    	
    }
    

    个人中心
    备忘录数量的统计以及软件的说明
    界面:

    在这里插入图片描述

    界面代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@drawable/blue"
        tools:context="com.example.coursedesign.PersonActivity" >
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="@drawable/green1"
            android:gravity="center_horizontal"
            android:text="个人中心"
            android:textSize="20sp"
            android:textStyle="italic" />
            <View
                android:layout_width="2dp"
                android:layout_height="0dp"  />
        <TextView
            android:layout_width="match_parent"
             android:layout_marginTop="12dp"
            android:layout_height="25dp"
            android:background="@drawable/yellow"
            android:gravity="center_horizontal"
            android:text="您的记录总共为"
            android:textSize="20sp"
            android:textStyle="italic" />
    
        <TextView
            android:id="@+id/person_text"
            android:layout_width="match_parent"
            android:layout_height="89dp"
            android:background="@drawable/yellow"
            android:gravity="center_horizontal"
            android:text="50"
            android:textSize="85sp"
            android:textStyle="italic" />
    
        <Button
            android:id="@+id/person_button"
            android:layout_width="140dp"
            android:layout_height="38dp"
              android:layout_marginTop="16dp"
            android:layout_gravity="center_horizontal"
             android:background="@drawable/white"
            android:text="软件介绍" />
        <View
            android:layout_width="match_parent"
            android:layout_height="2dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/green" />
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
    
            <ImageButton
                android:id="@+id/person_home_page"
                android:layout_width="58dp"
                android:layout_height="55dp"
                android:src="@drawable/home" />
    
            <View
                android:layout_width="2dp"
                android:layout_height="55dp"
                android:background="@drawable/green" />
    
            <ImageButton
                android:id="@+id/person_add_product"
                android:layout_width="58dp"
                android:layout_height="55dp"
                android:src="@drawable/add" />
    
            <View
                android:layout_width="2dp"
                android:layout_height="55dp"
                android:background="@drawable/green" />
    
            <ImageButton
                android:id="@+id/person_refresh"
                android:layout_width="58dp"
                android:layout_height="55dp"
                android:src="@drawable/refresh" />
    
            <View
                android:layout_width="2dp"
                android:layout_height="55dp"
                android:background="@drawable/green" />
    
            <ImageButton
                android:id="@+id/person_personal_center"
                android:layout_width="50dp"
                android:layout_height="55dp"
                android:layout_weight="0.84"
                android:src="@drawable/person" />
        </LinearLayout>
    
    </LinearLayout>
    

    后台代码:

    package com.example.coursedesign;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class PersonActivity extends Activity {
    
    	TextView text;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_person);
    		 SharedPreferences sharedP=getSharedPreferences("SaveTable",MODE_PRIVATE);   
    		   int num=sharedP.getInt("number", 0);
    		   Integer num2=(Integer)num;
    		   text=(TextView) findViewById(R.id.person_text);
    		   text.setText(num2.toString());
    		   Button button=(Button) findViewById(R.id.person_button);
    		   button.setOnClickListener(new View.OnClickListener() {
    	            @Override
    	            public void onClick(View v) {
    	            	Intent intent = new Intent(PersonActivity.this, AppActivity.class);
    	                  startActivity(intent);
    	            }
    	        });
    	}
    
    	
    }
    

    软件说明:
    对软件的进一步说明。
    界面:
    在这里插入图片描述
    界面代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@drawable/blue"
        tools:context="com.example.coursedesign.AppActivity" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="开发目的:"
            android:textSize="20sp"
            android:layout_marginTop="5dp"
            android:layout_marginStart="5dp"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="它是帮助你忘记的事情,在每个人忙碌的生活当中,人的记忆是有限的,备忘录就是让你把多个事情都能记起的东西。"
            android:textSize="15sp"
            android:layout_marginStart="5dp"
            android:layout_marginEnd="5dp"
            android:layout_marginTop="5dp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="开发人员:"
            android:textSize="20sp"
            android:layout_marginTop="5dp"
            android:layout_marginStart="5dp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="何昊"
            android:textSize="15sp"
            android:layout_marginTop="5dp"
            android:layout_marginStart="5dp"/>
      
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="系统版本:"
            android:textSize="20sp"
            android:layout_marginTop="5dp"
            android:layout_marginStart="5dp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="android app v1.0.0"
            android:textSize="15sp"
            android:layout_marginTop="5dp"
            android:layout_marginStart="5dp"/>
        <Button
            android:id="@+id/person_button"
            android:layout_width="150dp"
            android:layout_height="50dp"
            android:text="返回"
            android:textSize="20sp"
             android:layout_marginTop="5dp"
            android:layout_gravity="center_horizontal"/>
    
    </LinearLayout>
    

    后台代码:

    package com.example.coursedesign;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    
    public class AppActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_app);
    		Button button = (Button) findViewById(R.id.person_button);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
    	}
    }
    

    4 总结
    谈一下发现的问题与收获:

    1. 开始时使用相对布局进行设计,以为可以通过简单的拖拽就可以实现布局的设计,后面发现在控件变多的时候,变得很麻烦,并且由于界面的选择,eclipse这边的界面与模拟器的界面并不相同。后来使用线性布局进行设计。
    2. 之前上课学过openOrCreateDatabase方法与SQLitreOpenHelper类,存在有一些不明白的问题,通过这次课设,掌握了这些知识。
      3. 对时间规划不足,使得项目结束时间有点晚。
    展开全文
  • android编写的便捷备忘录,能实现增,删,改,查的功能。有时间提示,里面有apk文件可以down到手机上面直接运行,还有就是android studio项目,直接导入可以使用
  • android编写的便捷备忘录,能实现增,删,改,查的功能。有时间提示,里面有apk文件可以down到手机上面直接运行,还有就是android studio项目,直接导入可以使用
  • 一个很简单的app!
  • Android&ios 项目开发 综合实习报告 学 院 信息工程学院 专 业 计算机网络技术 班 级 学 号 姓 名 指导教师 2019 年 12 月 报告格式要求 报告标题 2 号宋体加粗 一级标题三号宋体加粗段前端后 0.5 倍行间距 二级标题...
  • 注意:课程设计只为完成任务,不做细节描述~ 学校有一个Android的课设,所以顺便把Android Studio安装了上去。 实际上安装过程并不复杂,只有几个地方需要注意~ 安装包可以去http://www.android-studio.org/...
  • android编写的便捷备忘录,能实现增,删,改,查的功能。有时间提示,里面有apk文件可以down到手机上面直接运行,还有就是android studio项目,直接导入可以使用
  • 课程设计 题 目 计算器 姓 名 戴雄坤 学 号 20127364 系 部 理工系 年级专业 12级计算机 指导教师 李津 2015 年 6 月 24 日 1 中南林业科技大学涉外学院本科课程设计诚信声明 本人郑重声明所呈交的课程设计是本人在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,457
精华内容 582
关键字:

android课程设计