Android 巧用Itent.ACTION_PICK和Intent.ACTION_GET_CONTENT(一)
阿新 • • 發佈:2019-01-25
你是不是很多時候,想從彈出的電話本姓名列表中中查詢到某個人,然後再獲取該人的詳細資訊呢?
你是不是想選擇從彈出的列表中選擇一張圖片,然後將其進行進一步的操作呢?
如果,你想,那你是不是很像知道,我們應該怎麼讓其彈出來一張選擇列表,又應該怎麼程式碼實現後邊的操作呢?
Itent.ACTION_PICK Intent.ACTION_GET_CONTENT 兩者都可以完成類似的功能,讓我們一起來看下例子:
第一:Intent.ACTION_PICK
首先新增一個許可權:
java程式碼:
發起一個 Contact Picker
java程式碼:
重寫方法
java程式碼:
例如
java程式碼:
第二:Intent.ACTION_GET_CONTENT
我們可以發現,其實action_get_content是通過intent中設定的type屬性來判斷具體呼叫哪個程式的。
java程式碼:
執行之會彈出一個對話方塊效果為:
你是不是想選擇從彈出的列表中選擇一張圖片,然後將其進行進一步的操作呢?
如果,你想,那你是不是很像知道,我們應該怎麼讓其彈出來一張選擇列表,又應該怎麼程式碼實現後邊的操作呢?
Itent.ACTION_PICK Intent.ACTION_GET_CONTENT 兩者都可以完成類似的功能,讓我們一起來看下例子:
第一:Intent.ACTION_PICK
首先新增一個許可權:
java程式碼:
-
<uses-permission android:name="android.permission.READ_CONTACTS"/>
發起一個 Contact Picker
java程式碼:
-
Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI);
-
startActivityForResult(intent, PICK_CONTACT);
重寫方法
java程式碼:
-
@Override
-
public void onActivityResult(int reqCode, int resultCode, Intent data)
-
{
-
super.onActivityResult(reqCode, resultCode, data);
-
switch (reqCode) {
-
case (PICK_CONTACT) :
-
if (resultCode == Activity.RESULT_OK) {
-
Uri contactData = data.getData();
-
Cursor c = managedQuery(contactData, null, null, null, null);
-
if (c.moveToFirst()) {
-
String name = c.getString(c.getColumnIndexOrThrow(People.NAME));
-
// TODO Whatever you want to do with the selected contact name.
-
}
-
}
-
break;
-
}
-
}
例如
java程式碼:
-
String[] columns = new String[] {People.NAME};
-
int[] names = new int[] {R.id.row_entry};
-
mAdapter = new SimpleCursorAdapter(this, R.layout.mycontacts, C, columns, names);
-
setListAdapter(mAdapter);
第二:Intent.ACTION_GET_CONTENT
我們可以發現,其實action_get_content是通過intent中設定的type屬性來判斷具體呼叫哪個程式的。
java程式碼:
-
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
-
intent.setType("audio/*");
- startActivity(Intent.createChooser(intent, "Select music"));
執行之會彈出一個對話方塊效果為: