日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android音乐播放器文章,Android复习09【内容提供者、音乐播放器】

發布時間:2023/12/20 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android音乐播放器文章,Android复习09【内容提供者、音乐播放器】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目 錄

PersonCp

PersonCp.java

insert()

ContentObserver

音樂播放器

1、添加讀寫權限

1.1、動態權限授予(調用封裝好的方法)

2、獲取音樂文件(MainActivity.java)

2、Music.java(實體類)

申請訪問SD卡的權限

設置適配器

下拉刷新

PersonCp

PersonCp.java

package cn.wangzg.personcp;

import android.content.ContentProvider;

import android.content.ContentUris;

import android.content.ContentValues;

import android.content.UriMatcher;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.net.Uri;

import java.util.Objects;

public class PersonCp extends ContentProvider { //數據庫作為數據源,將數據保存到數據庫中。

private MyHelper mHelper;

private final static String AUTHORITY = "cn.wangzg.personprovider";

private static UriMatcher mUriMatcher;

private static final int PERSON_DIR = 0;

private static final int PERSON = 1;

static {

mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);

// 該URI表示返回所有的person,其中PERSONS為該特定Uri的標識碼

mUriMatcher.addURI(AUTHORITY, "person", PERSON_DIR);

// 該URI表示返回某一個person,其中PERSON為該特定Uri的標識碼

mUriMatcher.addURI(AUTHORITY, "person/#", PERSON);

}

@Override

public String getType(Uri uri) {

switch (mUriMatcher.match(uri)) {

case PERSON_DIR:

return "vnd.android.cursor.dir/" + AUTHORITY + ".persons";

case PERSON:

return "vnd.android.cursor.item/" + AUTHORITY + ".person";

default:

throw new IllegalArgumentException("unknown uri" + uri.toString());

}

}

@Override

public boolean onCreate() {

mHelper = new MyHelper(getContext());

return true;

}

@Override

public Uri insert(Uri uri, ContentValues values) {

SQLiteDatabase db = mHelper.getWritableDatabase();

switch (mUriMatcher.match(uri)) {

case PERSON_DIR:

long newId = db.insert("person", "name,phone,salary", values);

//向外界通知該ContentProvider里的數據發生了變化 ,以便ContentObserver作出相應

getContext().getContentResolver().notifyChange(uri, null);

return ContentUris.withAppendedId(uri, newId);

default:

throw new IllegalArgumentException("unknown uri" + uri.toString());

}

}

@Override

public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {

SQLiteDatabase db = mHelper.getWritableDatabase();

int updatedNum = 0;

switch (mUriMatcher.match(uri)) {

// 更新表

case PERSON_DIR:

updatedNum = db.update("person", values, selection, selectionArgs);

break;

// 按照id更新某條數據

case PERSON:

long id = ContentUris.parseId(uri);

String where = "id=" + id;

if (selection != null && !"".equals(selection.trim())) {

where = selection + " and " + where;

}

updatedNum = db.update("person", values, where, selectionArgs);

break;

default:

throw new IllegalArgumentException("unknown uri" + uri.toString());

}

//向外界通知該ContentProvider里的數據發生了變化 ,以便ContentObserver作出相應

Objects.requireNonNull(getContext()).getContentResolver().notifyChange(uri, null);

return updatedNum;

}

@Override

public int delete(Uri uri, String selection, String[] selectionArgs) {

SQLiteDatabase db = mHelper.getWritableDatabase();

int deletedNum = 0;

switch (mUriMatcher.match(uri)) {

// 刪除表

case PERSON_DIR:

deletedNum = db.delete("person", selection, selectionArgs);

break;

// 按照id刪除某條數據

case PERSON:

long id = ContentUris.parseId(uri);

String where = "id=" + id;

if (selection != null && !"".equals(selection.trim())) {

where = selection + " and " + where;

}

deletedNum = db.delete("person", where, selectionArgs);

break;

default:

throw new IllegalArgumentException("unknown uri" + uri.toString());

}

//向外界通知該ContentProvider里的數據發生了變化 ,以便ContentObserver作出相應

Objects.requireNonNull(getContext()).getContentResolver().notifyChange(uri, null);

return deletedNum;

}

@Override

public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {

SQLiteDatabase db = mHelper.getWritableDatabase();

Cursor cursor = null;

switch (mUriMatcher.match(uri)) {

// 查詢表

case PERSON_DIR:

cursor = db.query("person", projection, selection, selectionArgs, null, null, sortOrder);

break;

// 按照id查詢某條數據

case PERSON:

// 第一步:

long id = ContentUris.parseId(uri);

String where = "id=" + id;

// 第二步:

if (selection != null && !"".equals(selection.trim())) {

where = selection + " and " + where;

}

cursor = db.query("person", projection, where, selectionArgs, null, null, sortOrder);

break;

default:

throw new IllegalArgumentException("unknown uri" + uri.toString());

}

return cursor;

}

}

insert()

ContentObserver

菜鳥教程 【4.4.1 ContentProvider初探】

https://www.runoob.com/w3cnote/android-tutorial-contentprovider.html

音樂播放器

1、添加讀寫權限

1.1、動態權限授予(調用封裝好的方法)

2、獲取音樂文件(MainActivity.java)

2、Music.java(實體類)

申請訪問SD卡的權限

設置適配器

下拉刷新

點個贊吧~? ? ? b( ̄▽ ̄)d

求求了~

小本生意,不容易啊~

總結

以上是生活随笔為你收集整理的android音乐播放器文章,Android复习09【内容提供者、音乐播放器】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。