天天看點

Android 檔案的選擇

打開檔案選擇器

<code>private</code> <code>void</code> <code>showFileChooser() {</code>

<code>    </code><code>Intent intent =</code><code>new</code> <code>Intent(Intent.ACTION_GET_CONTENT);</code>

<code>    </code><code>intent.setType(</code><code>"*/*"</code><code>);</code>

<code>    </code><code>intent.addCategory(Intent.CATEGORY_OPENABLE);</code>

<code>    </code><code>try</code> <code>{</code>

<code>        </code><code>startActivityForResult( Intent.createChooser(intent,</code><code>"Select a File to Upload"</code><code>), FILE_SELECT_CODE);</code>

<code>    </code><code>}</code><code>catch</code> <code>(android.content.ActivityNotFoundException ex) {</code>

<code>        </code><code>Toast.makeText(</code><code>this</code><code>,</code><code>"Please install a File Manager."</code><code>,  Toast.LENGTH_SHORT).show();</code>

<code>    </code><code>}</code>

<code>}</code>

  

選擇的結果

<code>@Override</code>

<code>protected</code> <code>void</code> <code>onActivityResult(</code><code>int</code> <code>requestCode,</code><code>int</code> <code>resultCode, Intent data)  {</code>

<code>    </code><code>switch</code> <code>(requestCode) {</code>

<code>        </code><code>case</code> <code>FILE_SELECT_CODE:     </code>

<code>        </code><code>if</code> <code>(resultCode == RESULT_OK) { </code>

<code>            </code><code>// Get the Uri of the selected file</code>

<code>            </code><code>Uri uri = data.getData();</code>

<code>            </code><code>String path = FileUtils.getPath(</code><code>this</code><code>, uri);</code>

<code>        </code><code>}          </code>

<code>        </code><code>break</code><code>;</code>

<code>super</code><code>.onActivityResult(requestCode, resultCode, data);</code>

 

FileUtils檔案

<code>public</code> <code>class</code> <code>FileUtils {</code>

<code>    </code><code>public</code> <code>static</code> <code>String getPath(Context context, Uri uri) {</code>

<code>        </code><code>if</code> <code>(</code><code>"content"</code><code>.equalsIgnoreCase(uri.getScheme())) {</code>

<code>            </code><code>String[] projection = {</code><code>"_data"</code> <code>};</code>

<code>            </code><code>Cursor cursor =</code><code>null</code><code>;</code>

<code>            </code><code>try</code> <code>{</code>

<code>                </code><code>cursor = context.getContentResolver().query(uri, projection,</code><code>null</code><code>,</code><code>null</code><code>,</code><code>null</code><code>);</code>

<code>                </code><code>int</code> <code>column_index = cursor.getColumnIndexOrThrow(</code><code>"_data"</code><code>);</code>

<code>                </code><code>if</code> <code>(cursor.moveToFirst()) {</code>

<code>                    </code><code>return</code> <code>cursor.getString(column_index);</code>

<code>                </code><code>}</code>

<code>            </code><code>}</code><code>catch</code> <code>(Exception e) {</code>

<code>                </code><code>// Eat it</code>

<code>            </code><code>}</code>

<code>        </code><code>}</code>

<code>        </code><code>else</code> <code>if</code> <code>(</code><code>"file"</code><code>.equalsIgnoreCase(uri.getScheme())) {</code>

<code>            </code><code>return</code> <code>uri.getPath();</code>

<code>        </code><code>return</code> <code>null</code><code>;</code>

  這個很簡單。

本文轉自Work Hard Work Smart部落格園部落格,原文連結:http://www.cnblogs.com/linlf03/p/3267732.html,如需轉載請自行聯系原作者

繼續閱讀