安卓移动开发作业三

安卓移动开发作业三

设计目标

  • 采用文件方式对外共享数据
  • 增加新增按钮的单项点击功能,点击后实现新增表数据的功能

功能说明

  • Android提供了ContentProvider,一个程序可以通过实现一个ContentProvider的抽象接口将自己的数据完全暴露出去。contentprovider主要用于在不同的应用程序之间实现数据共享的功能,它有一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。在本次实验中的效果如下,在contentprovide中可以访问resolver,resolver可以调用contentprovider,实现SQLite数据库的操作。

代码解析

Button button=findViewById(R.id.button);
        ContentResolver resolver=getContentResolver();
        Uri uri=Uri.parse("content://dsy.provider/student");
        ContentValues values=new ContentValues();
        values.put("name","dsy");
        values.put("age",18);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                resolver.insert(uri,values);
            }
        });

定义一个button按钮并且绑定一个点击事件,实现点击insert按钮完成数据库表数据的添加

public Uri DaoInsert(ContentValues values) {
        long rowId=db.insert("user",null,values);
        Uri uri=Uri.parse("content://dsy.provider/user");
        Uri newUri= ContentUris.withAppendedId(uri,rowId);
        context.getContentResolver().notifyChange(newUri,null);
        return newUri;
    }

第一行实现了将values数据插入到表中。第二行将字符串转成uri格式,注意这个字符串需要和resolve中的一致。Android提供内容的叫Provider,Uri作为唯一的标识来标识这个Provider。

public class MyContentProvider extends ContentProvider {
    private MyDao myDao;

    public MyContentProvider() {
    }
    @Override
    public boolean onCreate() {
        Context context=getContext();
        myDao=new MyDao(context);
        return false;
    }

    @Nullable
    @Override
    public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    @Nullable
    @Override
    public String getType(@NonNull Uri uri) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    @Nullable
    @Override
    public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
        return myDao.DaoInsert(values);
    }

    @Override
    public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    @Override
    public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
        throw new UnsupportedOperationException("Not yet implemented");
    }
}

MyContentProvider继承了ContentProvider,在onCreate()方法中完成myDao的初始化。最后调用myDao中的DaoInsert方法,完成了将values数据的插入。

运行展示截图

在这里插入图片描述
在这里插入图片描述

点击button按钮即可实现数据在表中的插入功能。

源码仓库地址

[](Android: 安卓作业 (gitee.com))

android开发期末大作业(项目源码,任务书,实验大报告,apk文件) 大作业的要求和内容:(包括题目选择范围、技术要求、递交时间、考核方法等) 一、实验项目名称 Android手机应用开发课程大作业 二、实验目的 1.通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用课堂上所学的Android手机应用开发知识。 2.为学生综合应用本专业所学习的多门课程知识(例如,软件工程、数据库、Java语言、Java Web开发等)创造实践机会。为学生提供主动学习、积极探索与大胆创新的机会。 3.掌握Android手机应用设计的方法与技巧。 、实验内容及要求 1、设计内容 题目、设计内容自拟,工作量适中,要求学生应用课程所学知识,采用JAVA语言和Android手机应用开发技术实现一个完整的系统。 ①完成大作业报告。 ②实现各系统功能,并完成调试运行。 2、主要技术 采用Java语言并不仅限于Java语言实现系统。 开发环境与工具:Android Studio 3.2以上版本; 操作系统:Win7/Win10或其他; 4、设计成果: 材料上交:电子文档(大作业任务书+大作业报告+源代码,电子稿请刻在光盘上)、打印稿(大作业任务书+大作业报告)。 四、成绩评定: 考核标准包括: 1、选题的工作量,难度和新颖程度 2、系统架构设计是否良好,运行过程是否报错 3、界面设计的合理性和美观程度 4、基本功能的实现 分值60 (包括布局、组件、Activity、Intent等使用) 数据存储的使用 分值10 网络功能 分值10 Service、ContentProvider或BroadCastReceiver等的使用 分值10 附加分: 图形图像处理、多媒体处理等 分值10 5、考核方式为面对面答辩,在课程的后两周内集中进行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值