Android ContentProvider query参数

public final Cursor query (Uri uri, String[] projection,String selection,String[] selectionArgs,String sortOrder)
第一个参数代表资源位置的uri

第二个参数代表返回内容(conlumn名)

第三个参数设置条件

第四个参数是第三个参数条件的内容

第五个参数是根据column排序

下列代码演示了从联系人中,选取所有列的内容,并且联系人id大于3,联系人姓名不是“含含”的所有数据,并根据id倒序

ContentResolver contentResolver = this.getContentResolver();
		Cursor cursor = contentResolver
				.query(android.provider.ContactsContract.Contacts.CONTENT_URI,
						null,
						android.provider.ContactsContract.Contacts._ID
								+ ">? and "
								+ android.provider.ContactsContract.Contacts.DISPLAY_NAME
								+ "!=?", new String[] { "28", "含含" },
						android.provider.ContactsContract.Contacts._ID
								+ " DESC");
		cursor.getCount();
		while (cursor.moveToNext()) {
			System.out
					.println(cursor.getString(cursor
							.getColumnIndex(android.provider.ContactsContract.Contacts._ID)));
			System.out
					.println(cursor.getString(cursor
							.getColumnIndex(android.provider.ContactsContract.Contacts.DISPLAY_NAME)));
		}
		cursor.close();


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我们可以用AndroidContentProvider来实现一个联系人应用,比如我们可以使用ContentProvider来访问系统的联系人数据库,并且可以添加、删除或者更新联系人信息。我们可以这样实现:1.定义ContentProvider:public class ContactProvider extends ContentProvider { @Override public boolean onCreate() { // 初始化ContentProvider } @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { // 查询联系人 } @Override public int delete(Uri uri, String selection, String[] selectionArgs) { // 删除联系人 } ### 回答2: 案例:音乐播放器 1. 首先,我们需要创建一个继承自ContentProvider的类,该类将扮演音乐播放器的数据提供者的角色。我们可以命名为MusicProvider。 2. 在MusicProvider中,我们需要定义一些常量来表示提供的数据的URI、表名等信息。例如,我们可以定义一个URI来表示音乐列表,另一个URI来表示当前播放的音乐等。 3. 在MusicProvider中,我们还需要定义一些数据库操作所需的方法,例如查询、插入、更新和删除。这些方法将根据接收到的URI来执行相应的操作,并返回操作的结果。 4. 在MusicProvider中,我们需要创建一个SQLiteOpenHelper实例来管理数据库的创建和升级。通过重写onCreate方法,我们可以在数据库第一次创建时执行一些初始化操作,例如创建音乐表并插入一些初始数据。 5. 在MusicProvider中,我们还需要重写getType方法来返回所提供数据的MIME类型。这将告诉Android系统该如何处理访问该数据的请求。 6. 在完成MusicProvider的编写后,我们可以在应用的其他组件中使用ContentResolver来和MusicProvider进行交互。通过使用ContentResolverquery、insert、update和delete方法,我们可以向MusicProvider查询、插入、更新和删除数据。 7. 例如,在应用的播放界面中,我们可以使用ContentResolver来查询当前播放的音乐信息,并将其显示在界面上。 8. 同样地,在应用的音乐列表界面中,我们可以使用ContentResolver来查询音乐列表,并将结果显示在列表中。 通过将音乐播放器的数据封装为ContentProvider,我们可以方便地实现数据的共享和访问。不同的应用程序可以通过ContentResolver来访问并操作MusicProvider提供的音乐数据,实现数据的共享和协同工作。此外,通过ContentProvider,我们还可以在不同的应用程序之间实现数据的共享和交互,例如将一个应用的音乐列表分享给其他应用来播放。 ### 回答3: Android ContentProviderAndroid中的一种组件,用于在不同应用之间共享数据。一个典型的ContentProvider案例是实现一个联系人的管理应用,它可以让用户查看、添加和编辑联系人信息。 首先,需要创建一个ContentProvider类,继承自android.content.ContentProvider,并实现其中的几个关键方法,如onCreate、query、insert、update和delete等。在这个联系人管理应用中,可以定义一个ContactsProvider类来实现这些方法。 然后,在AndroidManifest.xml文件中注册这个ContentProvider,声明相应的权限和数据表。 在ContactsProvider类中,可以定义联系人的数据库表结构,并在onCreate方法中创建该数据库。可以使用SQLiteOpenHelper类来帮助管理数据库的创建、更新和访问。 query方法用于查询联系人数据,可以通过Uri参数指定需要查询的数据。可以使用ContentResolver来调用这个方法,并在回调方法中处理查询结果。 insert方法用于插入新的联系人数据,可以通过Uri参数指定插入的位置。也需要使用ContentResolver来调用这个方法,并在回调方法中处理插入结果。 update方法用于更新联系人数据,可以通过Uri参数指定需要更新的数据。同样,需要使用ContentResolver来调用这个方法,并在回调方法中处理更新结果。 delete方法用于删除联系人数据,可以通过Uri参数指定需要删除的数据。需要使用ContentResolver来调用这个方法,并在回调方法中处理删除结果。 通过这个联系人管理应用的ContentProvider,其他应用可以通过ContentResolver访问和修改联系人数据。这样,不同的应用程序可以共享同一个联系人数据库,实现联系人数据的统一管理。 总之,Android ContentProvider提供了一种机制,让不同的应用程序可以共享数据。通过上述联系人管理应用的案例,可以更好地理解和使用ContentProvider
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值