为了账号安全,请及时绑定邮箱和手机立即绑定

Android攻城狮的第二门课(第3季)

难度初级
时长 6小时 0分
学习人数
综合评分9.57
162人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.3 逻辑清晰
  • sharedPreferences
    查看全部
  • sharedPreferences
    查看全部
  • 四种数据存储方式
    查看全部
  • ContentProvider---UriMatcher解释(暂时不知道干什么用)
    查看全部
  • ContentProvider---查询联系人id和姓名。 1.获取读取联系人权限。 <uses-permission android:name="android.permission.READ_CONTACTS"/> 2.使用Activity提供的getContentResolver获取对象。 ContentResolver contentResolver= this.getContentResolver(); 3.使用该对象做查询。需要的参数分别如下: //由于Contacts被废除,所以使用android.provider.ContactsContract.Contacts代替。 Uri uri=Contacts.CONTENT_URI; //表示通讯录的URI String[] projection=new String[]{Contacts._ID,Contacts.DISPLAY_NAME}; //查询哪些列,本次是查询主键id和名字 String selection=null;//没有查询条件 String[] selectionArgs=null;//没有查询条件参数 String sortOrder=null; //没有排序条件,将采用默认排序 Cursor cursor= contentResolver.query(uri, projection, selection, selectionArgs, sortOrder); 4.接下来遍历游标即可 由于不知道列明。所以使用Contacts下提供的常量即可 int id= cursor.getInt(cursor.getColumnIndex(Contacts._ID)); String name=cursor.getString(cursor.getColumnIndex(Contacts.DISPLAY_NAME));
    查看全部
  • “ContentProvider”(内容提供者)----自定义内容提供者 1.继承ContentProvider抽象类,实现抽象方法。 其中包括 @Override//根据Uri删除selection指定的条件所匹配的全部记录 public int delete(Uri uri, String selection, String[] selectionArgs) @Override//返回当前uri的MIME类型,如果该URI对应的数据可能包括多条记录 //那么MIME类型字符串 就是以vnd.android.dir/开头 // 如果该URI对应的数据只有一条记录 该MIME类型字符串 就是以vnd.android.cursor.item/开头 public String getType(Uri uri) @Override//根据Uri插入Values对应的数据 public Uri insert(Uri uri, ContentValues values) @Override//在ContetnProvider创建后被调用 public boolean onCreate() @Override//在ContetnProvider创建后被调用 public boolean onCreate() @Override//根据uri修改selection指定的条件所匹配的全部记录 public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) 2.在AndroidManifest.xml中注册。 注:自定义内容提供者一般情况下是用不到的,只需要用到google为我们提供的就足够了,一般是大公司,比如阿里这样,有很多旗下app需要共享数据的时候需要用到内容提供者的数据共享。
    查看全部
  • Android文件操作---文件读写 1.调用Activity的提供的两个方法, 可以获取“输入流”和“输出流” //public FileOutputStream openFileOutput(String name, int mode) //public FileInputStream openFileInput(String name) 知识拓展: 1.当需要一个文件需要两种模式的时候,可以使用相加的方式,让一个文件具有两种模式。 openFileOutput("filename",MODE_PRIVATE+MODE_APPEND);
    查看全部
    0 采集 收起 来源:文件操作案例

    2018-03-22

  • Android文件操作----几种获取目录的方法 1、// // /data/data/com.example.filedemo(包名)/files // File file=this.getFilesDir();//获取文件默认路径 2、 // /data/data/com.example.filedemo/cache // File file=this.getCacheDir(); //获取缓存文件默认路径 3、// /data/data/com.example.filedemo/app_imooc // File file=this.getDir("imooc", MODE_PRIVATE);//获取传入的文件名的路径(如果没有会自动创建),第二个参书为模式。
    查看全部
    0 采集 收起 来源:File类方法介绍

    2018-03-22

  • Android文件操作---创建文件(和Java一致) 1.new File()对象,该路径为 File file=new File("/mnt/sdcard/test.txt"); 2.判断如果文件不存在就创建。 if(!file.exists()) { try { file.createNewFile(); } catch (IOException e) { Log.i("my", "创建文件失败"); e.printStackTrace(); } } else { Toast.makeText(this, "文件已经存在", Toast.LENGTH_SHORT).show(); } 3.可以通过调用delete()方法,删除文件 file.delete();
    查看全部
  • SQLite中“SQLOpenHelper” 类的使用 1.自定义基类继承 “SQLOpenHelper” 类 2.其中必须实现带有四个参数的构造方法。 /* * 默认的必须有的构造函数。 * @param name 数据库的名字 * @param factory 游标工厂 * @param version 数据库版本 * */ public MySQLOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } 3.可以自定义构造方法。但是比喻引用父类的这四个参数的构造方法。 public MySQLOpenHelper(Context context) { /* * 引用父类的构造参数, * 默认使用 “userDB”作为数据库名称,不指定游标工厂,版本默认为1 * */ super(context,"myDB",null,1); } 4.重写两个抽象方法。oncreate和onupgrade public void onCreate(SQLiteDatabase db) { //当数据库第一次创建时调用,主要用于建表操作 } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //当数据库版本变动时,将回掉该方法。 } 5.实例化SQLOpenHelper类,通过他的getWritableDatabase();方法,获取一个可以读写的SQLiteDatabase类,用法和之前一样。 SQLiteDatabase sqLiteDatabase= new MySQLOpenHelper(this).getWritableDatabase();
    查看全部
    0 采集 收起 来源:SQLiteOpenHelper

    2018-03-22

  • 普通广播和有序广播特点
    查看全部
  • 广播接受器
    查看全部
  • “SQLite”数据库的应用 二 Cursor cursor=sqLiteDatabase.rawQuery("select *from User", null); //查询数据,以游标形式,第二个参数代表条件 if(cursor!=null) { //表示查询成功 while(cursor.moveToNext()) { /* * 1.cursor.getXXX(index)获取数据。 * 2.使用cursor.getColumnIndex(String) 获取某列的索引值 * 1.2配合使用,可以获取某行某列的具体数据 * */ Log.i("my", ""+cursor.getInt(cursor.getColumnIndex("_id"))) ; Log.i("my", ""+cursor.getString(cursor.getColumnIndex("name"))) ; Log.i("my", "-----------------"); } } sqLiteDatabase.close(); //关闭数据库连接。释放资源。
    查看全部
  • “SQLite”数据库的使用 一 /* * @param myDB.db 数据库的名字,最好以".db"结尾,这样导出到外部的时候不需要再转格式 * @param MODE_PREIVATE 设置模式,有私有(只能改应用程序访问),只读,读写等。 * @param CursorFactory 游标工厂。 暂时不知道干什么的,给空即可。 * */ SQLiteDatabase sqLiteDatabase= openOrCreateDatabase("myDB.db", MODE_PRIVATE, null);//打开或者创建数据库 /* * 执行sql语句 * 创建数据库表,使用 create table if not exists tablename 的形式,判断表是否存在,如果存在,则不创建 * 注意:主键建议使用"_"开头,如"_id",因为在以后的ListView开发中,貌似只能识别"_"开头的主键 * */ sqLiteDatabase.execSQL("create table if not exists User(_id integer primary key autoincrement, name text)");//执行sql语句 /* * 插入数据,必须加into,否则报错 * */ sqLiteDatabase.execSQL("insert into User (name) values('张三')");
    查看全部
  • SQLite的特点
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Android开发课程的中后期部分,学习之前要求对一些知识点有一定的了解: 1、已经掌握了Java基础 2、已经熟悉或者了解Android中的监听事件原理 3、已经熟悉或者了解一种以上的数据库,并掌握基本的SQL语句
老师告诉你能学到什么?
1、初步掌握Android手势识别的原理以及实际使用 2、初步掌握Android的数据存储方式 3、深度了解Android中的组件 4、熟悉了解Android常用的系统服务并对服务的使用有新的认识

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!