hi trying create folder in gallery....normally grid view display images in separately need folder in gallery. so, using file class....if run project log cat indicate error how solve these error? please check coding also.....
imageviewexample.java
package imageviewexample.imageviewexample; import java.io.file; import android.r.string; import android.app.activity; import android.content.context; import android.content.intent; import android.database.cursor; import android.graphics.bitmap; import android.graphics.bitmapfactory; import android.net.uri; import android.os.bundle; import android.os.environment; import android.provider.mediastore; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.baseadapter; import android.widget.gallery; import android.widget.gridview; import android.widget.imageview; import android.widget.adapterview.onitemclicklistener; public class imageviewexample extends activity { /** called when activity first created. */ private cursor imagecursor, actualimagecursor; private int image_column_index, actual_image_column_index; gridview imagegrid; private int count; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); init_phone_image_grid(); } private void init_phone_image_grid() { string[] img = { mediastore.images.thumbnails._id }; imagecursor = managedquery( mediastore.images.thumbnails.external_content_uri, img, null, null, mediastore.images.thumbnails.image_id + ""); image_column_index = imagecursor .getcolumnindexorthrow(mediastore.images.thumbnails._id); count = imagecursor.getcount(); imagegrid = (gridview) findviewbyid(r.id.phoneimagegrid); imagegrid.setadapter(new imadapterh(this)); imagegrid.setonitemclicklistener(new onitemclicklistener() { public void onitemclick(adapterview parent, view v, int position, long id) { system.gc(); string[] proj = { mediastore.images.media.data }; actualimagecursor = managedquery( mediastore.images.media.external_content_uri, proj, null, null, null); actual_image_column_index = actualimagecursor .getcolumnindexorthrow(mediastore.images.media.data); actualimagecursor.movetoposition(position); string = actualimagecursor.getstring(actual_image_column_index); system.gc(); intent intent = new intent(getapplicationcontext(), viewimage.class); intent.putextra("filename", i); startactivity(intent); } }); } public class imadapterh extends baseadapter{ file dir=new file(environment.getexternalstoragedirectory(),"/myimages/"); int count=dir.list().length; string[] filenames = dir.list(); private context mcontext; public imadapterh(context c) { mcontext = c; } public int getcount() { return count; } public object getitem(int position) { return null; } public long getitemid(int position) { return 0; } // create new imageview each item referenced adapter public view getview(int position, view convertview, viewgroup parent) { imageview imageview = null; for(string bitmapfilename : filenames) { if (convertview == null) { // if it's not recycled, initialize attributes imageview = new imageview(mcontext); imageview.setlayoutparams(new gallery.layoutparams(85, 85)); imageview.setscaletype(imageview.scaletype.center_crop); imageview.setpadding(8, 8, 8, 8); bitmap bmp = bitmapfactory.decodefile(dir.getpath() + "/" + bitmapfilename); system.out.println(dir); imageview.setimagebitmap(bmp); }else { imageview = (imageview) convertview; } } return imageview; } }}
logcat error:
04-29 14:56:23.011: debug/androidruntime(415): >>>>>>>>>>>>>> androidruntime start <<<<<<<<<<<<<< 04-29 14:56:23.021: debug/androidruntime(415): checkjni on 04-29 14:56:23.402: debug/androidruntime(415): --- registering native functions --- 04-29 14:56:24.781: debug/androidruntime(415): shutting down vm 04-29 14:56:24.791: debug/dalvikvm(415): debugger has detached; object registry had 1 entries 04-29 14:56:24.821: info/androidruntime(415): note: attach of thread 'binder thread #3' failed 04-29 14:56:25.761: debug/androidruntime(423): >>>>>>>>>>>>>> androidruntime start <<<<<<<<<<<<<< 04-29 14:56:25.761: debug/androidruntime(423): checkjni on 04-29 14:56:26.141: debug/androidruntime(423): --- registering native functions --- 04-29 14:56:27.552: info/activitymanager(66): starting activity: intent { act=android.intent.action.main cat=[android.intent.category.launcher] flg=0x10000000 cmp=imageviewexample.imageviewexample/.imageviewexample } 04-29 14:56:28.182: debug/androidruntime(423): shutting down vm 04-29 14:56:28.232: debug/dalvikvm(423): debugger has detached; object registry had 1 entries 04-29 14:56:28.291: info/activitymanager(66): start proc imageviewexample.imageviewexample activity imageviewexample.imageviewexample/.imageviewexample: pid=430 uid=10050 gids={} 04-29 14:56:28.312: info/androidruntime(423): note: attach of thread 'binder thread #3' failed 04-29 14:56:29.641: debug/androidruntime(430): shutting down vm 04-29 14:56:29.641: warn/dalvikvm(430): threadid=1: thread exiting uncaught exception (group=0x4001d800) 04-29 14:56:29.711: error/androidruntime(430): fatal exception: main 04-29 14:56:29.711: error/androidruntime(430): java.lang.runtimeexception: unable start activity componentinfo{imageviewexample.imageviewexample/imageviewexample. imageviewexample.imageviewexample}: java.lang.nullpointerexception 04-29 14:56:29.711: error/androidruntime(430): @ android.app.activitythread.performlaunchactivity(activitythread.java:2663) 04-29 14:56:29.711: error/androidruntime(430): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2679) 04-29 14:56:29.711: error/androidruntime(430): @ android.app.activitythread.access$2300(activitythread.java:125) 04-29 14:56:29.711: error/androidruntime(430): @ android.app.activitythread$h.handlemessage(activitythread.java:2033) 04-29 14:56:29.711: error/androidruntime(430): @ android.os.handler.dispatchmessage(handler.java:99) 04-29 14:56:29.711: error/androidruntime(430): @ android.os.looper.loop(looper.java:123) 04-29 14:56:29.711: error/androidruntime(430): @ android.app.activitythread.main(activitythread.java:4627) 04-29 14:56:29.711: error/androidruntime(430): @ java.lang.reflect.method.invokenative(native method) 04-29 14:56:29.711: error/androidruntime(430): @ java.lang.reflect.method.invoke(method.java:521) 04-29 14:56:29.711: error/androidruntime(430): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:868) 04-29 14:56:29.711: error/androidruntime(430): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:626) 04-29 14:56:29.711: error/androidruntime(430): @ dalvik.system.nativestart.main(native method) 04-29 14:56:29.711: error/androidruntime(430): caused by: java.lang.nullpointerexception 04-29 14:56:29.711: error/androidruntime(430): @ imageviewexample.imageviewexample.imageviewexample$imadapterh.<init> (imageviewexample.java:73) 04-29 14:56:29.711: error/androidruntime(430): @ imageviewexample.imageviewexample.imageviewexample.init_phone_image_grid (imageviewexample.java:47) 04-29 14:56:29.711: error/androidruntime(430): @ imageviewexample.imageviewexample.imageviewexample.oncreate (imageviewexample.java:36) 04-29 14:56:29.711: error/androidruntime(430): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1047) 04-29 14:56:29.711: error/androidruntime(430): @ android.app.activitythread.performlaunchactivity (activitythread.java:2627) 04-29 14:56:29.711: error/androidruntime(430): ... 11 more 04-29 14:56:29.751: warn/activitymanager(66): force finishing activity imageviewexample.imageviewexample/.imageviewexample 04-29 14:56:30.292: warn/activitymanager(66): activity pause timeout historyrecord{4406aab0 imageviewexample.imageviewexample/.imageviewexample} 04-29 14:56:36.701: debug/dalvikvm(189): gc_explicit freed 162 objects / 7136 bytes in 121ms 04-29 14:56:41.568: warn/activitymanager(66): activity destroy timeout historyrecord{4406aab0 imageviewexample.imageviewexample/.imageviewexample}
please me.....
the problem line:
int count=dir.list().length;
the chain of logic demonstrates has line follows:
- the statement creates
file
object can't throw exception inimadapterh
constructor itself. - this means
dir
must non-null. - this means
dir.list()
won't throw exception inimadapterh
constructor. - this leaves dereferencing of
string[]
referencelength
value culprit.
finally, null pointer can explained fact file.list()
returns null
if file (in case dir
) not exists or doesn't denote directory ... per file.list()
javadoc.
Comments
Post a Comment