首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android Intent 傳遞 Uri 對象:轉字符串再解析

     編輯:程式設計綜合問答

問題

intent.putExtra("uri", uri) 傳遞 Uri 對象,另一端 getString("uri") 取不到值。

原因

Uri 實現了 Parcelable,需用 getParcelableExtra 取回;若用 putExtra(String, String) 則自動調用 toString()。

方案一:傳字符串(推薦簡單)

// 發送
intent.putExtra("uri", uri.toString());
// 接收
String uriStr = getIntent().getStringExtra("uri");
Uri uri = Uri.parse(uriStr);

方案二:傳 Parcelable

// 發送
intent.putExtra("uri", uri); // Uri 實現 Parcelable
// 接收
Uri uri = getIntent().getParcelableExtra("uri");

注意

  • 跨進程傳遞必須用 Parcelable/Serializable,同進程字符串更輕量。
  • Uri.parse 能正確處理 content://、file://、https:// 等 scheme。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved