iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 16
0
Mobile Development

Andriod Studio 菜鳥的學習分享系列 第 16

[Android Studio菜鳥的學習分享]使用他人製作元件模板

當我們需要一些功能,
又不想自己手刻一個畫面和製作功能,
如果不是正式的專案製作,
不妨試試使用他人做好的元件模板,
對於沒有美感的我來說真的是非常實用呢~

今天介紹一個有許多免費模板可使用的網站

Android Arsenal

它有將不同種類的模板分類,
且作者很多都附上的使用說明
方便我們查找使用。
昨天我們在 [Android Studio菜鳥的學習分享]內建檔案選擇器-選取檔案並取得檔案路徑
使用內建的檔案選擇器獲得原始路徑,
但不同的系統會有不同的結果,
所以今天我將以他人製作的檔案選擇器來示範如何使用他人製作的元件模板!


目標:

按下選取檔案按鈕,
選擇想要的檔案後,
將該檔案的原始路徑顯示在TextView上。

FileAndFolderPicker 模板

模板功能:
1.檔案單選
2.檔案複選
3.資料夾選擇
4.檔案權限檢查及詢問給予檔案權限

結果預覽:

https://ithelp.ithome.com.tw/upload/images/20200914/20129524j6cCfAn1Kd.jpg

第一次使用若沒有權限便要求權限
https://ithelp.ithome.com.tw/upload/images/20200914/20129524xBu7jPuWGd.jpg

https://ithelp.ithome.com.tw/upload/images/20200914/201295240F9XNUbQ0P.jpg

選擇檔案
https://ithelp.ithome.com.tw/upload/images/20200914/20129524jMkWVPVGpM.jpg

https://ithelp.ithome.com.tw/upload/images/20200914/20129524vhFGvzZQV6.jpg


Gradle Scripts

Step01-build.gradle(Project):

加入

maven { url 'https://jitpack.io' }

https://ithelp.ithome.com.tw/upload/images/20200914/20129524x2b0bwbd8y.jpg

Step02-build.gradle(Module):

加入

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
dataBinding {
    enabled = true
}

implementation 'com.github.salehyarahmadi:FileAndFolderPicker:1.0.4'

https://ithelp.ithome.com.tw/upload/images/20200914/20129524XWzsVLFUWZ.jpg


activity_main.xml

https://ithelp.ithome.com.tw/upload/images/20200914/20129524HKBAS5Eio5.jpg


MainActivity.java

https://ithelp.ithome.com.tw/upload/images/20200914/20129524XiK1RrbGd7.jpg

Step01-新增檢查權限方法:

private boolean permissionGranted(){
    return ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
            && ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
}

Step02-新增權限詢問給予視窗方法:

private void requestPermission(){
    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}

Step03-新增按鈕監聽器:

btnfilechoose = (Button) findViewById(R.id.btnfilechoose);
btnfilechoose.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

    }
});

Step04-判斷是否有檔案權限,若無則顯示權限詢問給予視窗

if(permissionGranted()) {

}
else{
    requestPermission();
}

Step05-創建檔案選擇器視窗及彈出視窗

SingleFilePickerDialog singleFilePickerDialog = new SingleFilePickerDialog(MainActivity.this,
        () -> textoutput.setText("Canceled!!"),
        files -> textoutput.setText(files[0].getPath()));
singleFilePickerDialog.show();

上一篇
[Android Studio菜鳥的學習分享]內建檔案選擇器-選取檔案並取得檔案路徑
下一篇
[Android Studio菜鳥的學習分享]檔案選擇器應用(上)-匯入CSV檔案
系列文
Andriod Studio 菜鳥的學習分享30

尚未有邦友留言

立即登入留言