如何自定義乙個優雅的ContentProvider

2021-07-03 01:25:35 字數 2834 閱讀 9428



複製**

1 package com.example.providertest;

2 3 import android.net.uri;

4 import android.provider.basecolumns;

5 6 /**

7  * 常量類

8  */

9 public final class studentprofile

22 23     /**

24      * 實現了這個basecolumns介面 可以讓我們少寫幾行**

25      *

26      */

27     public static final class students implements basecolumns

34 35         // 定義我們的表名

36         public static final string table_name = "students";

37 38         /**

39          * 下面開始uri的定義

40          */

41 42         // uri的scheme部分 這個部分是固定的寫法

43         private static final string scheme = "content://";

44 45         // 部分學生

46         private static final string path_students = "/students";

47 48         // 某乙個學生

49         private static final string path_students_id = "/students/";

50 51         /**

52          * path這邊的第幾個值是指的位置 我們設定成第乙個位置

53          */

54         public static final int student_id_path_position = 1;

55 56         // 這個表的基本的uri格式

57         public static final uri content_uri = uri.parse(scheme + authority

58                 + path_students);

59         // 某一條資料的基本uri格式 這個通常在自定義的provider的insert方法裡面被呼叫

60         public static final uri content_id_uri_base = uri.parse(scheme

61                 + authority + path_students_id);

62 63         /**

64          * 定義一下我們的mime型別 注意一下mime型別的寫法

65          *

66          * 一般都是後面vnd.應用程式的包名.表名

67          */

68 69         // 多行的mime型別

70         public static final string content_type = "vnd.android.cursor.dir/vnd.com.example.providertest.students";

71         // 單行的mime型別

72         public static final string content_item_type = "vnd.android.cursor.item/vnd.google.com.example.providertest.students";

73 74         /**

75          * 既然provider提供了查詢的方法 我們肯定要設定乙個預設的排序方式 這裡我們就預設讓他根據建立的時間 來降序排序

76          */

77         public static final string default_sort_order = "created desc";

78 79         /**

80          * 下面就是表的列定義了

81          */

82 83         // 學生的名字

84         public static final string column_name_name = "name";

85         // 學生的年齡

86         public static final string column_name_age = "age";

87         // 學生的學號

88         public static final string column_name_number = "number";

89         // 這個學生建立的時間

90         public static final string column_name_create_date = "created";

91         // 這個學生入庫以後修改的時間

92         public static final string column_name_modification_date = "modified";

93 94     }

95 96 }

複製**

複製**

如何自定義乙個UIProgressView

viewcontroller.m裡的檔案 import viewcontroller.h import myprogressview.h inte ce viewcontroller end implementation viewcontroller void viewdidload void di...

php 自定義條件,php如何自定義乙個方法

在php中可以通過 function foo arg 1,arg 2,arg n 形式定義乙個方法。使用者自定義函式 乙個函式可由以下的語法來定義 example 1 展示函式用途的偽 function foo arg 1,arg 2,arg n echo example function.n re...

如何自定義乙個記憶體池?

目錄 我們先寫個簡單的第一版記憶體分配器 第二版第三版alloctor 第四版alloctor 推進式單向鍊錶操作 分配24 size個記憶體空間 可以見圖prealloctor class firstalloctor firstalloctor std size t get void showwh...