移动开发作业三

一、实验内容与界面展示

1. 实验内容与技术

1、contentprovider是安卓四大组件之一,请使用其方法类进行数据获取;

2、请自建一个provider,然后在另一个app中使用resolver调用这个provider。

3、本次作业请启用新项目,理论上需要两个APP进行实验。

2. 界面展示

 

二、实现过程

请自建一个provider,然后在另一个app中使用resolver调用这个provider。在两个APP进行实验。

1. 创建resolver

页面设计

使用provider的数据库、uri,进行插入操作,设置插入值。

核心代码:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ContentResolver resolver=getContentResolver();

        Button button=findViewById(R.id.button);
        ContentValues values=new ContentValues();
        values.put("name","xyw");
        values.put("age",1);
        Uri uri= Uri.parse("content://xyw.provider2/student");

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                resolver.insert(uri,values);
            }
        });
    }
}

2. 创建provider

功能实现由三部分组成,为:MyDBHelper、MyContentProvider、MyDAO

1.MyDBHelper

核心代码:

public class MyDBHelper extends SQLiteOpenHelper {
    public MyDBHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL("create table student (id integer primary key autoincrement,name varchar,age integer )");
        Log.d("xyw","MyDBHelper is running");

    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}


2. MyContentProvider

Oncreate方法中传入context。

核心代码:

    public Uri insert(Uri uri, ContentValues values) {
        // TODO: Implement this to handle requests to insert a new row.
//        getContext().getContentResolver.insert(uri,values);
        return myDAO.DAOinsert(values);
    }

3.MyDAO

完成实际上的数据库的增删改查,与dbhelper和resolver中的方法对应。

其中当uri写定时,使用withAppendedId进行增加行的实现.对应的MyContentProvider中的uriinsert方法之传入value值,不传入uri.

核心代码:

public class MyDAO {
    private Context context;
    private SQLiteDatabase database;
    public MyDAO(Context context) {
        this.context=context;
        MyDBHelper dBhelper=new MyDBHelper(context,"xywDB",null,1);
        database=dBhelper.getWritableDatabase();
    }
    public Uri DAOinsert(ContentValues contentValues){

        long rowid=database.insert("student",null,contentValues);
        Uri uri=Uri.parse("content://xyw.provider2/student");
        Uri inserturi=ContentUris.withAppendedId(uri,rowid);
        context.getContentResolver().notifyChange(inserturi,null);
        return  inserturi;

    }

}

3. resolver调用provider

Resolver使用provider的uri。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ContentResolver resolver=getContentResolver();

        Button button=findViewById(R.id.button);
        ContentValues values=new ContentValues();
        values.put("name","xyw");
        values.put("age",1);
        Uri uri= Uri.parse("content://xyw.provider2/student");

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                resolver.insert(uri,values);
            }
        });
    }
}

三、页面跳转结果展示

效果展示

resolver_provider

四、源码地址

https://gitee.com/cainiaocaigitee/androidwork3.git

五、作业心得

掌握了contentprovider组件,并应用其进行数据获取;自建一个provider,然后在另一个app中使用resolver调用这个provider。完成了两个APP的调用实验。相比于原来的技术,对移动开发技术又有了更深的理解和应用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: MIT移动开发技术大作业是指麻省理工学院移动开发技术课程的大作业。该课程旨在教授学生移动应用开发的基本知识和技巧,使他们能够开发出功能完善、用户友好的移动应用程序。 在大作业中,学生需要通过结合课程所学的理论知识和实践技能,选择一个具有挑战性的移动应用项目来完成。他们需要分析目标用户群体的需求,设计应用界面,实现核心功能,进行用户测试和反馈收集,并最终提交一个完整的移动应用项目。 大作业的评估标准主要包括功能完整性、用户友好性、创新性以及代码质量等方面。学生需要展示他们在移动应用开发过程中的技术能力和创造力,并能够有效地解决实际问题。 通过这个大作业,学生将能够巩固和应用所学的理论知识,提升移动应用开发的实践能力。此外,学生还能够通过与目标用户的交互和反馈收集,理解用户需求,改善和优化应用程序。 总之,MIT移动开发技术大作业是培养学生移动应用开发技能和创新能力的重要环节,通过该作业的完成,学生能够应对实际挑战,开发出符合用户需求的高质量移动应用程序。 ### 回答2: MIT移动开发技术大作业是一项针对学生而设计的任务,旨在提升学生在移动开发方面的技术能力和创新能力。在这个大作业中,学生通常被要求完成一个移动应用的开发,该应用可以是一个游戏、社交媒体应用、健康管理工具等。 完成MIT移动开发技术大作业需要学生具备一定的编程基础和移动开发相关知识。学生需要利用所学的编程语言开发工具,例如Java、Swift、React Native等,来设计和开发一个功能完整且具有创新性的移动应用。在开发的过程中,学生需要理解移动应用的设计原则和用户体验,同时考虑应用的性能优化和安全性等方面。 大作业的评估标准通常包括应用的功能实现程度、界面设计与交互体验、代码结构与质量、创新性和实用性等。学生需要通过清晰的需求分析、合理的系统设计和高质量的编码来完成任务,并能进行有效的测试和调试。 这个大作业为学生提供了一个实践和展示自己技术能力的机会,同时也鼓励学生探索和创新。通过完成这个大作业,学生可以深入理解移动开发的流程和技术要点,提升自己的综合能力,并为以后的学习和就业打下坚实的基础。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值