ANDROID笔记:activity通过ContentProvider传值(仿调用系统图片浏览器过程)
调用端代码
String string = getContentResolver().getType(Uri.parse("content://com.test.provider"));
Toast.makeText(MainActivity.this, "ss:"+string, 200).show();
Intent intent = new Intent();
intent.setType(string);
startActivityForResult(intent, 0);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
Bundle bundle=intent.getExtras();
String name=bundle.getString("name");
String sex=bundle.getString("sex");
Toast.makeText(MainActivity.this, name+"__"+sex, 200).show();
}
服务器端代码
(activity)
//传值
String name="test";
String sex="男";
Intent intent = new Intent();
intent.putExtra("name",name);
intent.putExtra("sex", sex);
//设置结果
setResult(1,intent);
//调用finsish后前面的
finish();
activity的配置文件
<intent-filter>
<action android:name="com.test.test" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/myitem" />
</intent-filter>
(Provider)
@Override
public String getType(Uri uri) {
// 单一数据 vnd.android.cursor.item 开头
// 集合数据 vnd.android.cursor.dir 开头
return "vnd.android.cursor.item/myitem";
}
provider的配置文件
<provider
android:name=".MyProvider"
android:authorities="com.test.provider"
android:exported="true" >
</provider>