Picasso, хранение картинок в кэше
Я хочу сохранить изображение в кэше, я использую libruary Пикассо. Ниже мой код. Я не могу понять как сохранить изображение в кэш с помощью адаптеров. Мой Алгоритм: если пользователь имеет доступ в Интернет -> я загрузить AsynkTask, если пользователь не интернет то загрузить список. Пожалуйста, помогите я много времени пробовал решить эту проблему
Main
//this i load json
ArrayList<NewsObject> newsList;
ListView list;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//code
list = (ListView) findViewById(R.id.list);
newsList = new ArrayList<NewsObject>();
//code
//if i online then work AsynkTask
if(isOnline()) {
new NewsAsynkTask().execute();
} else {
NewsAdapter adapter = new NewsAdapter(getApplicationContext(), R.layout.n_news_list_object);
list.setAdapter(adapter);
}
}
public boolean isOnline() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null &&
cm.getActiveNetworkInfo().isConnectedOrConnecting();
}
public class NewsAsynkTask extends AsyncTask<String , Void, String> {
//code
protected String doInBackground(String... params) {
//this i add json to object,
//then i add in list object
newsList.add(newsObject);
}
protected void onPostExecute(String file_url) {
//adapter in game
NewsAdapter adapter = new NewsAdapter(getApplicationContext(), R.layout.n_news_list_object, newsList);
list.setAdapter(adapter);
}
}
Adapter
public class NewsAdapter extends ArrayAdapter<NewsObject>{
ArrayList<NewsObject> ArrayListNews;
int Resourse;
Context context;
LayoutInflater vi;
public NewsAdapter(Context context, int resource, ArrayList<NewsObject>objects) {
super(context, resource, objects);
ArrayListNews = objects;
Resourse = resource;
this.context = context;
vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public NewsAdapter(Context context, int resource) {
super(context, resource);
Resourse = resource;
this.context = context;
vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView == null) {
convertView = vi.inflate(Resourse, null);
holder = new ViewHolder();
holder.imageview = (ImageView) convertView.findViewById(R.id.imageNews);
holder.nameNews = (TextView) convertView.findViewById(R.id.nameNews);
holder.dayNews = (TextView) convertView.findViewById(R.id.dayNews);
holder.monthNews = (TextView) convertView.findViewById(R.id.monthNews);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
//new DownloadImageTask(holder.imageview).execute(ArrayListNews.get(position).getImage());
Picasso.with(context).load(ArrayListNews.get(position).getImage()).into(holder.imageview);
Picasso.with(context).setIndicatorsEnabled(true);
Picasso.with(context).setLoggingEnabled(true);
holder.nameNews.setText(ArrayListNews.get(position).getNameNews());
holder.dayNews.setText(ArrayListNews.get(position).getDayNews());
holder.monthNews.setText(ArrayListNews.get(position).getMonthNews());
return convertView;
}
static class ViewHolder {
public ImageView imageview;
public TextView nameNews;
public TextView dayNews;
public TextView monthNews;
}
}