android - Universal Image Loader use from asynctask -
i want use uil asynctask.
import com.nostra13.universalimageloader.core.displayimageoptions; import com.nostra13.universalimageloader.core.imageloaderconfiguration; public class singleappdetail extends activity { button btnlogout; button btshowprogress; // progress dialog private progressdialog pdialog; jsonparser jparser = new jsonparser(); // progress dialog type (0 - horizontal progress bar) public static final int progress_bar_type = 0; private static string file_url = "http://site.com/as.apk"; jsonarray detalii = null; textview app_detail_title; button app_price_button; textview app_description; imageview app_picture; view loadingpanelviev; view appdetailheader; ratingbar appdetailrating; ratingbar rating_1; ratingbar rating_2; ratingbar rating_3; ratingbar rating_4; ratingbar rating_5; ratingbar rating_ff; textview rating_ff_text; textview rating_1_text; textview rating_2_text; textview rating_3_text; textview rating_4_text; textview rating_5_text; string[] imageurls; imageswitcher appgallery; displayimageoptions options; com.nostra13.universalimageloader.core.imageloader imageloader; gallery app_gallery; arraylist<string> urlse = new arraylist<string>(); @override protected void oncreate(bundle savedinstancestate) { // todo auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.app_detail); app_detail_title = (textview) findviewbyid(r.id.app_detail_title); app_price_button = (button) findviewbyid(r.id.app_detail_price); app_description = (textview) findviewbyid(r.id.description_holder); app_picture = (imageview) findviewbyid(r.id.singleappdetailimage); loadingpanelviev = (view) findviewbyid(r.id.loadingpanelappdetailheader); appdetailheader = (view) findviewbyid(r.id.app_detail_header_content); appdetailrating = (ratingbar) findviewbyid(r.id.app_detail_rating); rating_1 = (ratingbar) findviewbyid(r.id.rating_1); rating_2 = (ratingbar) findviewbyid(r.id.rating_2); rating_3 = (ratingbar) findviewbyid(r.id.rating_3); rating_4 = (ratingbar) findviewbyid(r.id.rating_4); rating_5 = (ratingbar) findviewbyid(r.id.rating_5); rating_ff = (ratingbar) findviewbyid(r.id.rating_ff); rating_ff_text = (textview) findviewbyid(r.id.rating_ff_text); rating_1_text = (textview) findviewbyid(r.id.rating_1_text); rating_2_text = (textview) findviewbyid(r.id.rating_2_text); rating_3_text = (textview) findviewbyid(r.id.rating_3_text); rating_4_text = (textview) findviewbyid(r.id.rating_4_text); rating_5_text = (textview) findviewbyid(r.id.rating_5_text); // appgallery=(imageswitcher)findviewbyid(r.id.app_detail_gallery); app_gallery = (gallery) findviewbyid(r.id.app_gallery); displayimageoptions defaultoptions = new displayimageoptions.builder() .cacheinmemory().build(); imageloaderconfiguration config = new imageloaderconfiguration.builder( getapplicationcontext()).defaultdisplayimageoptions( defaultoptions).build(); imageloader.getinstance().init(config); new loadappmaindetails(getapplicationcontext()).execute(); new loadappmainrating(getapplicationcontext()).execute(); new loadappmainimages(getapplicationcontext()).execute(); button download = (button) findviewbyid(r.id.app_detail_price); download.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub new downloadfilefromurl().execute(file_url); } }); } /** * showing dialog * */ @override protected dialog oncreatedialog(int id) { //this ok } /** * background async task download file * */ class downloadfilefromurl extends asynctask<string, string, string> { //this ok } class loadappmaindetails extends asynctask<string, string, hashmap<string, string>> { //this ok } class loadappmainrating extends asynctask<string, string, string> { ok; } // here starts problem class loadappmainimages extends asynctask<string, string, string> { context mcontext; jsonarray appdetailpictures; string image_path; public loadappmainimages(context context) { super(); this.mcontext = context; } @override protected string doinbackground(string... params) { intent = getintent(); string app_id = is.getstringextra("element_id"); list<namevaluepair> parameters = new arraylist<namevaluepair>(); parameters.add(new basicnamevaluepair("app_id", app_id)); jsonobject json = jparser.makehttprequest( "http://himbimarket.com/masterapp/get_app_pictures.php", "post", parameters); try { int success = json.getint("success"); if (success == 1) { appdetailpictures = json.getjsonarray("images"); (int = 0; < appdetailpictures.length(); i++) { jsonobject c = appdetailpictures.getjsonobject(i); // storing each json item in variable string picname = c.getstring("picture"); image_path = "http://www.himbimarket.com/masterapp/" .concat(picname); urlse.add(image_path); } } } catch (exception e) { // todo: handle exception } return null; } @override protected void onpostexecute(string result) { toast.maketext(getapplicationcontext(), urlse.get(2), toast.length_long).show(); app_gallery.setadapter(new imagegalleryadapter()); } } public class imagegalleryadapter extends baseadapter { @override public int getcount() { return urlse.size(); } @override public object getitem(int position) { return position; } @override public long getitemid(int position) { return position; } @override public view getview(int position, view convertview, viewgroup parent) { imageview imageview = (imageview) convertview; if (imageview == null) { imageview = (imageview) getlayoutinflater().inflate( r.layout.item_gallery_image, parent, false); } imageloader.displayimage(urlse.get(position), imageview); return imageview; } } } i don't figure out why not working.
the error code bellow:
04-19 06:52:19.635: e/androidruntime(1593): fatal exception: main 04-19 06:52:19.635: e/androidruntime(1593): java.lang.nullpointerexception 04-19 06:52:19.635: e/androidruntime(1593): @ com.himbi.market.singleappdetail$imagegalleryadapter.getview(singleappdetail.java:471) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.absspinner.onmeasure(absspinner.java:193) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.view.measure(view.java:15513) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4827) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1404) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.linearlayout.measurehorizontal(linearlayout.java:1052) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.linearlayout.onmeasure(linearlayout.java:590) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.view.measure(view.java:15513) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4827) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.linearlayout.measurechildbeforelayout(linearlayout.java:1404) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.linearlayout.measurevertical(linearlayout.java:695) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.linearlayout.onmeasure(linearlayout.java:588) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.view.measure(view.java:15513) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.scrollview.measurechildwithmargins(scrollview.java:1217) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.framelayout.onmeasure(framelayout.java:310) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.scrollview.onmeasure(scrollview.java:321) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.view.measure(view.java:15513) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4827) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.framelayout.onmeasure(framelayout.java:310) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.view.measure(view.java:15513) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.linearlayout.measurevertical(linearlayout.java:847) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.linearlayout.onmeasure(linearlayout.java:588) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.view.measure(view.java:15513) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4827) 04-19 06:52:19.635: e/androidruntime(1593): @ android.widget.framelayout.onmeasure(framelayout.java:310) 04-19 06:52:19.635: e/androidruntime(1593): @ com.android.internal.policy.impl.phonewindow$decorview.onmeasure(phonewindow.java:2176) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.view.measure(view.java:15513) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.viewrootimpl.performmeasure(viewrootimpl.java:1874) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.viewrootimpl.measurehierarchy(viewrootimpl.java:1089) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1265) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:989) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:4351) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.choreographer$callbackrecord.run(choreographer.java:749) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.choreographer.docallbacks(choreographer.java:562) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.choreographer.doframe(choreographer.java:532) 04-19 06:52:19.635: e/androidruntime(1593): @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:735) 04-19 06:52:19.635: e/androidruntime(1593): @ android.os.handler.handlecallback(handler.java:725) it hass problem in adapter when tries load imageview.
this app_detail.xml
<?xml version="1.0" encoding="utf-8"?> <scrollview xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/app_detail_back_image" > <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="fill_parent" android:background="@drawable/app_detail_back_image" android:orientation="vertical" > <relativelayout android:id="@+id/loadingpanelappdetailheader" style="@style/genericprogressbackground" android:layout_height="fill_parent" > <progressbar style="@style/genericprogressindicator" /> </relativelayout> <linearlayout android:id="@+id/app_detail_header" android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@drawable/divider" android:paddingbottom="5dp" android:paddingleft="5dp" android:paddingtop="5dp" > <imageview android:id="@+id/singleappdetailimage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/nopic" /> <relativelayout android:id="@+id/app_detail_header_content" android:layout_width="wrap_content" android:layout_height="match_parent" > <includes.textresize android:id="@+id/app_detail_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignparenttop="true" android:maxlines="2" android:text="first application" android:textcolor="@color/himbi_apps_color" android:textsize="22sp" /> <button android:id="@+id/app_detail_price" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignparentbottom="true" android:layout_alignparentright="true" android:background="@drawable/app_detail_price_back" android:text="button" /> <textview android:id="@+id/app_detail_developer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_below="@+id/app_detail_title" android:text="textview" android:textsize="14sp" /> </relativelayout> </linearlayout> <linearlayout android:layout_width="match_parent" android:layout_height="150dp" > <gallery android:id="@+id/app_gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:spacing="1dip" /> </linearlayout> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" > <relativelayout android:layout_width="fill_parent" android:layout_height="match_parent" > <ratingbar android:id="@+id/app_detail_rating" style="?android:attr/ratingbarstylesmall" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <textview android:id="@+id/app_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentright="true" android:layout_alignparenttop="true" android:text="small tijkjext" android:textappearance="?android:attr/textappearancesmall" /> </relativelayout> </linearlayout> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" > <relativelayout android:layout_width="fill_parent" android:layout_height="match_parent" > <textview android:id="@+id/description_holder" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:text="description holder" /> </relativelayout> </linearlayout> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" > <relativelayout android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_marginleft="20dp" > <textview android:id="@+id/textview2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:text="@string/rating" android:textappearance="?android:attr/textappearancemedium" android:textcolor="@color/himbi_color" /> <relativelayout android:id="@+id/relativelayout1" android:layout_width="100dp" android:layout_height="100dp" android:layout_margin="25dp" android:layout_torightof="@+id/relativelayout2" > <textview android:id="@+id/rating_ff_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignright="@+id/textview8" android:layout_centervertical="true" android:gravity="center_horizontal" android:text="4.5" android:textappearance="?android:attr/textappearancelarge" android:textcolor="@color/himbi_apps_color" /> <ratingbar android:id="@+id/rating_ff" style="?android:attr/ratingbarstylesmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/rating_ff_text" android:layout_centerhorizontal="true" android:padding="2dp" /> <textview android:id="@+id/textview8" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:background="#a0a0a0" android:gravity="center_horizontal" android:text="rating" android:textappearance="?android:attr/textappearancemedium" android:textcolor="@color/header" /> </relativelayout> </relativelayout> </linearlayout> </linearlayout> </scrollview> and xml inflate:
<?xml version="1.0" encoding="utf-8"?> <gallery xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:spacing="1dip" /> android version 4.0.1 , uil latest.
thank you
imageloader.getinstance().displayimage...
Comments
Post a Comment