这就是我的工作
public video() {
}
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate( R.layout.fragment_video,container,false );
recyclerView = view.findViewById( R.id.recyvle );
videomodelArrayList = new ArrayList<>();
runtimepermision();
return view;
}
private void ini() {
LinearLayoutManager linearLayoutManager=new LinearLayoutManager( getcontext());
// GridLayoutManager linearLayoutManager = new GridLayoutManager( getcontext(),2);
recyclerView.setHasFixedSize( true );
recyclerView.setLayoutManager( linearLayoutManager );
fachfromgalary();
}
private void fachfromgalary() {
Uri uri;
Cursor cursor;
int coli_int_data,columb_index_filder_name,columb_id,thum;
String absilutpathimage = null;
uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String[] projecter = {
MediaStore.Video.Media._ID,MediaStore.MediaColumns.DATA,MediaStore.Video.DEFAULT_SORT_ORDER,MediaStore.Video.Thumbnails.DATA};
String orderby = MediaStore.Images.Media.DATE_TAKEN;
String selection= MediaStore.Video.Media.DATA+"like?";
String []aray= new String[]{"%FolderName%"};
cursor = getactivity().getcontentResolver().query( uri,projecter,selection,aray,orderby + " DESC" );
coli_int_data = cursor.getcolumnIndexOrThrow( MediaStore.MediaColumns.DATA );
// columb_index_filder_name = cursor.getcolumnIndexOrThrow( MediaStore.Video.Media.DISPLAY_NAME );
// columb_id=cursor.getcolumnIndexOrThrow( MediaStore.Video.Media._ID );
thum = cursor.getcolumnIndexOrThrow( MediaStore.Video.Thumbnails.DATA );
while (cursor.moveToNext()) {
absilutpathimage = cursor.getString( coli_int_data );
videomodel videomodel = new videomodel();
videomodel.setBoolean_selected( false );
// videomodel.setStr_name( columb_index_filder_name );
videomodel.setStr_path( absilutpathimage );
videomodel.setStr_thumb( cursor.getString( thum ) );
videomodelArrayList.add( videomodel );
}
videoadapter videoadapter = new videoadapter( getactivity().getapplicationContext(),videomodelArrayList,getactivity() );
recyclerView.setadapter( videoadapter );
}
private void runtimepermision() {
Dexter.withactivity( getactivity() ).withPermission( Manifest.permission.READ_EXTERNAL_STORAGE ).withListener( new PermissionListener() {
@Override
public void onPermissionGranted(PermissionGrantedResponse response) {
ini();
}
@Override
public void onPermissionDenied(PermissionDeniedResponse response) {
}
@Override
public void onPermissionRationaleShouldBeShown(PermissionRequest permission,PermissionToken token) {
token.continuePermissionRequest();
}
} ).check();
错误日志:
2019-11-12 15:09:06.900 6648-6682 / com.abhijeet.video E / MemoryLeakMonitorManager:MemoryLeakMonitor.jar不存在! 2019-11-12 15:09:06.901 6648-6648 / com.abhijeet.video E / Minikin:无法获取cmap表大小! 2019-11-12 15:09:12.444 6648-6699 / com.abhijeet.video E / vndksupport:无法从sphal名称空间加载vendor / lib64 / egl / libGLES_mali.so:dlopen失败:库“ vendor / lib64 / egl /找不到libGLES_mali.so。 2019-11-12 15:11:53.515 6648-6648 / com.abhijeet.video E / Android运行时:致命异常:主要 流程:com.abhijeet.video,PID:6648 java.lang.RuntimeException:无法启动活动ComponentInfo {com.abhijeet.video/com.abhijeet.video.Mainactivity}:android.database.sqlite.SQLiteException:靠近“?”:语法错误(Sqlite代码1):,而编译:SELECT _data,_display_name,_id,_data from video WHERE(_datalike?)ORDER BY datetaked DESC,(操作系统错误-2:无此类文件或目录) 在android.app.activityThread.performLaunchactivity(activityThread.java:3303) 在android.app.activityThread.handleLaunchactivity(activityThread.java:3411) 在android.app.activityThread.handleRelaunchactivity(activityThread.java:5477) 在android.app.activityThread.-wrap19(未知来源:0) 在android.app.activityThread $ H.handleMessage(activityThread.java:2000) 在android.os.Handler.dispatchMessage(Handler.java:108) 在android.os.Looper.loop(Looper.java:166) 在android.app.activityThread.main(activityThread.java:7529) 在java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:245) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921) 引起原因:android.database.sqlite.SQLiteException:靠近“?”:语法错误(Sqlite代码1):,同时编译:SELECT _data,_display_name,_id,_data from video WHERE(_datalike?)ORDER BY datetaken DESC,(OS错误-2:没有此类文件或目录) 在android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:179) 在android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) 在android.content.ContentProviderProxy.query(ContentProviderNative.java:418) 在android.content.ContentResolver.query(ContentResolver.java:766) 在android.content.ContentResolver.query(ContentResolver.java:716) 在android.content.ContentResolver.query(ContentResolver.java:667) 在com.abhijeet.video.fragenment_vidoe.video.fachfromgalary(video.java:97) 在com.abhijeet.video.fragenment_vidoe.video.ini(video.java:78) 在com.abhijeet.video.fragenment_vidoe.video.access $ 000(video.java:46) 在com.abhijeet.video.fragenment_vidoe.video $ 1.onPermissionGranted(video.java:123) 在com.karumi.dexter.MultiplePermissionsListenerToPermissionListenerAdapter.onPermissionsChecked(未知来源:35) 在com.karumi.dexter.DexterInstance $ 1.run(未知来源:43) 在com.karumi.dexter.MainThread.execute(未知来源:6) 在com.karumi.dexter.DexterInstance.checkMultiplePermissions(未知来源:56) 在com.karumi.dexter.DexterInstance.checkPermissions(未知来源:0) 在com.karumi.dexter.Dexter.check中(未知来源:10) 在com.abhijeet.video.fragenment_vidoe.video.runtimepermision(video.java:137) 在com.abhijeet.video.fragenment_vidoe.video.onCreateView(video.java:65) 在android.support.v4.app.Fragment.performCreateView(Fragment.java:2439) 在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460) 在android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784) 在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852) 在android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269) 在android.support.v4.app.FragmentManagerImpl.dispatchactivityCreated(FragmentManager.java:3229) 在android.support.v4.app.FragmentController.dispatchactivityCreated(FragmentController.java:201) 在android.support.v4.app.Fragmentactivity.onStart(Fragmentactivity.java:620) 在android.support.v7.app.AppCompatactivity.onStart(AppCompatactivity.java:178) 在android.app.Instrumentation.callactivityOnStart(Instrumentation.java:1339) 在android.app.activity.performStart(activity.java:7403) 在android.app.activityThread.performLaunchactivity(activityThread.java:3266) 在android.app.activityThread.handleLaunchactivity(activityThread.java:3411) 在android.app.activityThread.handleRelaunchactivity(activityThread.java:5477) 在android.app.activityThread.-wrap19(未知来源:0) 在android.app.activityThread $ H.handleMessage(activityThread.java:2000) 在android.os.Handler.dispatchMessage(Handler.java:108) 在android.os.Looper.loop(Looper.java:166) 在android.app.activityThread.main(activityThread.java:7529) 在java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:245) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)