java - Installed application list doesn't show icon in the list in android -


i trying list of installed application in android device. here code in launcher app:

package com.powergroupbd.appfilter;  import java.util.arraylist; import java.util.iterator; import java.util.list;  import android.app.activity; import android.content.pm.packageinfo; import android.content.pm.packagemanager; import android.graphics.drawable.drawable; import android.os.bundle; import android.util.log; import android.widget.arrayadapter; import android.widget.listview;  public class applicationfilteractivity extends activity {     /** called when activity first created. */      listview appfilter;     // arrayadapter<applications> adapter;     packagemanager pck;     private arraylist<applications> results = new arraylist<applications>();       @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.main);          appfilter = (listview) findviewbyid(r.id.lvapp);          packagemanager packagemanager = this.getpackagemanager();         list<packageinfo> applist = packagemanager.getinstalledpackages(0);         iterator<packageinfo> = applist.iterator();         while (it.hasnext()) {             packageinfo pk = (packageinfo) it.next();             // if(packagemanager.permission_granted==packagemanager.checkpermission(manifest.permission.access_fine_location,             // pk.packagename) &&             // packagemanager.permission_granted==packagemanager.checkpermission(manifest.permission.access_coarse_location,             // pk.packagename)) //checking if package having internet             // permission             // {             results.add(get(pk.applicationinfo.loadicon(getpackagemanager()), ""+pk.applicationinfo.loadlabel(packagemanager)));             log.i("appname", ""+pk.applicationinfo.loadlabel(packagemanager));               // }         }          // collections.sort(results, new comparator<applications>() {         // @override         // public int compare(applications c1, applications c2) {         // return c1.getappname().comparetoignorecase(c2.getappname());         // }         // });          appfilter.setadapter(new arrayadapter<applications>(this,                 android.r.layout.simple_list_item_1, results));     }        private applications get(drawable icon, string appname) {         return new applications(icon, appname);     } } 

my custom adapter class here:

package com.powergroupbd.appfilter;  import java.util.list;  import android.app.activity; import android.graphics.color; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.arrayadapter; import android.widget.imageview; import android.widget.textview;  public class customarrayadapter extends arrayadapter<applications> {      private final list<applications> list;     private final activity context;      public customarrayadapter(activity context, list<applications> list) {         super(context, r.layout.row, list);         this.context = context;         this.list = list;     }      static class viewholder {          protected imageview icon;         protected textview appame;     }      @override     public view getview(int position, view convertview, viewgroup parent) {         view view = null;         if (convertview == null) {             layoutinflater inflator = context.getlayoutinflater();             view = inflator.inflate(r.layout.row, null);             final viewholder viewholder = new viewholder();             viewholder.icon = (imageview) view.findviewbyid(r.id.ivicon);             viewholder.appame = (textview) view.findviewbyid(r.id.tvappname);             viewholder.appame.settextcolor(color.white);                view.settag(viewholder);         } else {             view = convertview;          }          viewholder holder = (viewholder) view.gettag();         holder.icon.setimagedrawable(list.get(position).geticon());         holder.appame.settext(list.get(position).getappname());                    return view;     } } 

and here applications class:

package com.powergroupbd.appfilter;  import android.graphics.drawable.drawable;  public class applications {      private drawable icon;     private string appname;      public applications(drawable icon, string appname) {          this.icon = icon;         this.appname = appname;      }      public drawable geticon() {         return icon;     }      public void seticon(drawable icon) {         this.icon = icon;     }      public string getappname() {         return appname;     }      public void setappname(string appname) {         this.appname = appname;     }  } 

finally manifest is:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.powergroupbd.appfilter"     android:versioncode="1"     android:versionname="1.0" >      <uses-sdk android:minsdkversion="8" />      <application         android:icon="@drawable/ic_launcher"         android:label="@string/app_name" >         <activity             android:name=".applicationfilteractivity"             android:label="@string/app_name" >             <intent-filter>                 <action android:name="android.intent.action.main" />                  <category android:name="android.intent.category.launcher" />             </intent-filter>         </activity>     </application>  </manifest> 

if run program, shows list of garbage string value(com.powergroupbd.appfilter.applications@44297...) without icon.

how can fix it?

you'll need override applications class

so add applications.java file:

public string tostring(){     return appname; } 

that make tostring call return name of application instance, instead of memory address. can add whatever information returned string within method.

edit:

change line:

appfilter.setadapter(new arrayadapter<applications>(this, android.r.layout.simple_list_item_1, results)); 

to this:

appfilter.setadapter(new customarrayadapter(this, results)); //<-- should camelcase name of adapter class. 

Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -