I want to convert **Drawable** into **int** and then vice versa.Basically I want to save **Arraylist** object into **sharedPrefrence**. For that purpose I have Implement **Gson** to Srtring convertion Method. If I use here **Drawable** instead of **int** then Gson String convertion take alot of time. so I want to use int instead of Drawable.

```
 private List<AppInfo> apps = null;

   public void setIcon(int icon) {
    this.icon = icon;
}

   apps.get(position).setIcon(mContext.getResources().getDrawable(apps.get(position).getIcon()));

```

Where AppInfo here is

```
    public AppInfo(String appname, String pname, String versionName, int versionCode, int icon, int color) {
    this.appname = appname;
    this.pname = pname;
    this.versionName = versionName;
    this.versionCode = versionCode;
    this.icon = icon;
    this.color = color;
}

```

Here is source of Converting ArrayList of Custom object into String so that i can save it to SharedPrefrence.

```
            Gson gson = new Gson();
            apps.get(number).setColor(picker.getColor());
            String JsonAppsdata = gson.toJson(apps);
            System.out.println("Storing="+JsonAppsdata);
            utility.StoreData(getApplicationContext(), JsonAppsdata);

```