Code Monkey home page Code Monkey logo

filepicker's Introduction

FilePicker

文件选择器 本项目基于 https://github.com/imLibo/FilePicker 修复了部分bug

How to

To get a Git project into your build:

Step 1. Add the JitPack repository to your build file

gradle maven sbt leiningen Add it in your root build.gradle at the end of repositories:

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

Step 2. Add the dependency

dependencies {
        implementation 'com.github.gaoguanqi:FilePicker:1.0.0'
}

Share this release:

使用方法:

1, Theme NoTitleBar

2, 权限申请 READ_EXTERNAL_STORAGE

3,

FilePicker.from(this)
        .chooseForBrowser()
                .setMaxCount(1)
                .setFileTypes("png", "doc", "apk", "mp3", "gif", "txt", "mp4", "zip")
                .requestCode(REQUEST_CODE_FILE)
                .start();     

4,

   @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            switch (requestCode) {
                case REQUEST_CODE_FILE:
                    ArrayList<EssFile> essFileList = data.getParcelableArrayListExtra(Const.EXTRA_RESULT_SELECTION);
                    if (essFileList != null && !essFileList.isEmpty()) {
                        String path = essFileList.get(0).getAbsolutePath();
                        tvContent.setText(path);
                    }
                    break;
                default:
                    break;
            }
        }
        super.onActivityResult(requestCode, resultCode, data);
    } 

filepicker's People

Contributors

gaoguanqi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

sanshao27

filepicker's Issues

升级到androidx闪退

    Process: com.wteamweb.jjkj.shooting, PID: 6731
    java.lang.RuntimeException: Unable to destroy activity {com.wteamweb.jjkj.shooting/com.maple.filepickerlibrary.activity.SelectFileByScanActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.fragment.app.FragmentManager.isDestroyed()' on a null object reference
        at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4708)
        at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4731)
        at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:39)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1948)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7050)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.fragment.app.FragmentManager.isDestroyed()' on a null object reference
        at androidx.fragment.app.Fragment.performDetach(Fragment.java:2947)
        at androidx.fragment.app.FragmentStateManager.detach(FragmentStateManager.java:503)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1302)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
        at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
        at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2625)
        at androidx.fragment.app.FragmentManager.dispatchDestroy(FragmentManager.java:2609)
        at androidx.fragment.app.FragmentController.dispatchDestroy(FragmentController.java:330)
        at androidx.fragment.app.FragmentActivity.onDestroy(FragmentActivity.java:365)
        at androidx.appcompat.app.AppCompatActivity.onDestroy(AppCompatActivity.java:233)
        at com.maple.filepickerlibrary.activity.SelectFileByScanActivity.onDestroy(SelectFileByScanActivity.java:123)
        at android.app.Activity.performDestroy(Activity.java:7724)
        at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1306)
        at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4693)
        at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4731) 
        at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:39) 
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1948) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:214) 
        at android.app.ActivityThread.main(ActivityThread.java:7050) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965) 
2020-03-13 18:40:37.143 6731-6731/com.wteamweb.jjkj.shooting I/Process: Sending signal. PID: 6731 SIG: 9

主要是这个Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.fragment.app.FragmentManager.isDestroyed()' on a null object reference,在com.maple.filepickerlibrary.activity.SelectFileByScanActivity.onDestroy(SelectFileByScanActivity.java:123)

initUi方法里用了FragmentManager

List<Fragment> fragmentList = new ArrayList<>();
        for (int i = 0; i < SelectOptions.getInstance().getFileTypes().length; i++) {
            fragmentList.add(FileTypeListFragment.newInstance(SelectOptions.getInstance().getFileTypes()[i], SelectOptions.getInstance().isSingle, SelectOptions.getInstance().maxCount, SelectOptions.getInstance().getSortType(), EssMimeTypeCollection.LOADER_ID + i));
        }
        FragmentPagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager(), fragmentList, Arrays.asList(SelectOptions.getInstance().getFileTypes()));

能否看下什么问题,谢谢您

androidx 报错

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.fragment.app.FragmentManagerImpl.isDestroyed()' on a null object reference
at androidx.fragment.app.Fragment.performDetach(Fragment.java:2849)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1034)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2659)
at androidx.fragment.app.FragmentManagerImpl.dispatchDestroy(FragmentManagerImpl.java:2644)
at androidx.fragment.app.FragmentController.dispatchDestroy(FragmentController.java:329)
at androidx.fragment.app.FragmentActivity.onDestroy(FragmentActivity.java:366)
at androidx.appcompat.app.AppCompatActivity.onDestroy(AppCompatActivity.java:242)
at com.ess.filepicker.activity.SelectFileByScanActivity.onDestroy(SelectFileByScanActivity.java:122)
at android.app.Activity.performDestroy(Activity.java:7266)
at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1316)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4767)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.