{"id":167139,"date":"2013-01-26T00:47:03","date_gmt":"2013-01-25T20:47:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=167139"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=167139","title":{"rendered":"<span class=\"post_title\">\u041b\u0435\u043d\u0438\u0432\u044b\u0439 ListView, ViewHolder \u0438 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" align=\"left\" src=\"http:\/\/habrastorage.org\/storage2\/254\/6fc\/39d\/2546fc39d0f76f7a04e939df66d821d0.png\"\/>   <\/p>\n<h4>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 <\/h4>\n<p>  \u041d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0443\u0436\u0435 <a href=\"http:\/\/habrahabr.ru\/post\/133575\/\">\u0435\u0441\u0442\u044c<\/a> \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438 ListView \u0432 Android, \u043d\u043e \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u043f\u0440\u0435\u043f\u043e\u0434\u043d\u0435\u0441\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0432\u0438\u0434\u0435 \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 (\u0438\u0437 \u0436\u0438\u0437\u043d\u0438). \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u043c\u044b \u043f\u0438\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0443\u043c\u0435\u0442\u044c \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u0437 Facebook. \u0418 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0442\u0443\u0434\u0430, \u0430 \u0435\u0449\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437 Google+. \u0418 \u0432\u0441\u0435 \u044d\u0442\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u043e\u0434\u0438\u043d \u0441\u043f\u0438\u0441\u043e\u043a, \u043f\u0440\u0438\u0447\u0435\u043c \u0441\u043b\u0435\u0432\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0430\u0432\u0430\u0442\u0430\u0440\u043a\u0430, \u0430 \u0441\u043f\u0440\u0430\u0432\u0430 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u043e\u0439 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0442\u0430\u043a\u0442 (\u0441\u043c. \u0440\u0438\u0441\u0443\u043d\u043e\u043a \u0441\u043b\u0435\u0432\u0430). \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 (\u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0430\u0432\u0430\u0442\u0430\u0440\u043a\u0430) \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u044f \u2014 \u0447\u0435\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0443 \u043d\u0430\u0441 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 <a href=\"http:\/\/risovach.ru\/upload\/2012\/hand\/nelzya-prosto-tak-vzyat-i_orig_.jpg\">\u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c<\/a> \u0438 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b, \u0430 \u043f\u043e\u0442\u043e\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043d\u0430\u0448 \u0441\u043f\u0438\u0441\u043e\u043a, \u0438\u043d\u0430\u0447\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u0443\u044e \u043a\u043d\u0438\u0433\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0435\u0440\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u0441\u0435\u043a\u0443\u043d\u0434 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a. \u0412\u044b\u0445\u043e\u0434 \u0438\u0437 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442.\u043d. \u00ab\u043b\u0435\u043d\u0438\u0432\u043e\u0433\u043e\u00bb \u0441\u043f\u0438\u0441\u043a\u0430 (lazy list). \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c.<\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<h4>MainActivity<\/h4>\n<p>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0441\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0432\u043d\u0438\u0437. \u0418\u0442\u0430\u043a, \u043a\u043e\u0434 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0430\u043a\u0442\u0438\u0432\u0438\u0442\u0438:<\/p>\n<pre><code class=\"java\">package com.github.dtitov.spinlist;  import java.util.ArrayList;  import android.app.ListActivity; import android.os.Bundle;  public class MainActivity extends ListActivity {  \t@Override \tpublic void onCreate(Bundle savedInstanceState) { \t\tsuper.onCreate(savedInstanceState);  \t\t\/** \t\t * Create and fill list of usernames. \t\t *\/ \t\tArrayList&lt;String&gt; users = new ArrayList&lt;String&gt;(); \t\tusers.add(&quot;adele&quot;); \t\tusers.add(&quot;coldplay&quot;); \t\tusers.add(&quot;gotye&quot;); \t\tusers.add(&quot;huskyrescueofficial&quot;); \t\tusers.add(&quot;kasabian&quot;); \t\tusers.add(&quot;lanadelrey&quot;); \t\tusers.add(&quot;muse&quot;); \t\tusers.add(&quot;officialplacebo&quot;); \t\tusers.add(&quot;theraveonettes&quot;);  \t\t\/** \t\t * Create and initialize our own adapter. \t\t *\/ \t\tLazyAdapter lazyAdapter = new LazyAdapter(this, users); \t\tsetListAdapter(lazyAdapter); \t} } <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u043d\u0435 \u043f\u0440\u0430\u0432\u0434\u0430 \u043b\u0438? <code>MainActivity<\/code> \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442 <code>ListActivity<\/code>, \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 <code>onCreate()<\/code> \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u00ab\u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432\u00bb. <i>\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043c\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c (\u0442.\u043a. \u044d\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c\u043e\u0439 \u0442\u0443\u0442\u043e\u0440\u0438\u0430\u043b\u0430). \u041f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f. <\/i> \u0418\u0442\u0430\u043a, \u043c\u044b \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445 \u043d\u0430\u0441 \u044e\u0437\u0435\u0440\u043e\u0432, \u0441\u043a\u043e\u0440\u043c\u0438\u043b\u0438 \u0435\u0433\u043e \u043d\u0430\u0448\u0435\u043c\u0443 \u043b\u0435\u043d\u0438\u0432\u043e\u043c\u0443 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0443 \u0438 \u0437\u0430\u0434\u0430\u043b\u0438 \u044d\u0442\u043e\u0442 \u0430\u0434\u0430\u043f\u0442\u0435\u0440, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043e\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0442\u043e\u0434 <code>setListAdapter()<\/code>. \u0418\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<h4>LazyAdapter<\/h4>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u043a \u0434\u0435\u043b\u0443:<\/p>\n<pre><code class=\"java\">package com.github.dtitov.spinlist;  import java.util.ArrayList;  import android.app.Activity; import android.content.Context; import android.graphics.drawable.BitmapDrawable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ProgressBar; import android.widget.TextView;  \/**  *   * BaseAdapter extension with lazy loading. Item template is designed in  * res\/layout\/item_user.xml  *   *\/ public class LazyAdapter extends BaseAdapter { \tprivate Activity activity; \tprivate LayoutInflater layoutInflater; \tprivate ArrayList&lt;String&gt; names; \tprivate FbUser[] folks; \/\/ array for caching users  \t\/** \t *  \t * Loading of all necessary objects: activity and user list. Getting the \t * inflater. \t *\/ \tpublic LazyAdapter(Activity activity, ArrayList&lt;String&gt; names) { \t\tsuper(); \t\tthis.activity = activity; \t\tthis.names = names; \t\tthis.folks = new FbUser[this.names.size()]; \t\tlayoutInflater = (LayoutInflater) activity \t\t\t\t.getSystemService(Context.LAYOUT_INFLATER_SERVICE); \t}  \t\/** \t *  \t * Using ViewHolder patter we save time by avoiding calling findViewById \t * each time we need a view. \t *  \t *\/ \tprivate static class ViewHolder { \t\tpublic TextView textView; \t\tpublic ProgressBar spinner; \t}  \t\/** \t * Method for processing ListView items. Inflates the item layout (if it's \t * null) and passes the View to AyncTask processing. \t *\/ \tpublic View getView(int position, View convertView, ViewGroup parent) { \t\tFbUser cachedUser = folks[position]; \/\/ trying to get a user from cache  \t\tView item = convertView; \t\tViewHolder viewHolder;  \t\t\/** \t\t * If item has not been created yet, we inflate it and pass its personal \t\t * ViewHolder as a tag parameter. Otherwise we just get an existing \t\t * ViewHolder. \t\t *\/ \t\tif (item == null) { \t\t\titem = layoutInflater.inflate(R.layout.item_user, null); \t\t\tviewHolder = new ViewHolder(); \t\t\tviewHolder.textView = (TextView) item \t\t\t\t\t.findViewById(R.id.textViewUser); \t\t\tviewHolder.spinner = (ProgressBar) item \t\t\t\t\t.findViewById(R.id.progressBar); \t\t\titem.setTag(viewHolder); \t\t} else { \t\t\tviewHolder = (ViewHolder) item.getTag(); \t\t}  \t\t\/** \t\t * If the current user is not cached yet, we execute async task for \t\t * retreiving the information. Otherwise we just load data from the \t\t * cached object. \t\t *\/ \t\tif (cachedUser == null) { \t\t\tviewHolder.textView.setText(&quot;&quot;); \t\t\tviewHolder.textView.setCompoundDrawablesWithIntrinsicBounds( \t\t\t\t\tnull, \t\t\t\t\tnull, \t\t\t\t\tactivity.getResources().getDrawable( \t\t\t\t\t\t\tR.drawable.facebook_icon), null); \t\t\tviewHolder.spinner.setVisibility(View.VISIBLE); \t\t\tnew FetchDataTask(activity, this, position, viewHolder.textView, \t\t\t\t\tviewHolder.spinner, names.get(position)) \t\t\t\t\t.execute(new Void[] {}); \t\t} else { \t\t\tviewHolder.textView.setText(cachedUser.getName()); \t\t\tviewHolder.spinner.setVisibility(View.GONE); \t\t\tviewHolder.textView.setCompoundDrawablesWithIntrinsicBounds( \t\t\t\t\tnew BitmapDrawable(activity.getResources(), cachedUser \t\t\t\t\t\t\t.getBitmap()), null, activity.getResources() \t\t\t\t\t\t\t.getDrawable(R.drawable.facebook_icon), null); \t\t} \t\treturn item; \t}  \t@Override \tpublic int getCount() { \t\treturn names.size(); \t}  \t@Override \tpublic Object getItem(int position) { \t\treturn names.get(position); \t}  \t@Override \tpublic long getItemId(int position) { \t\treturn position; \t}  \tpublic FbUser[] getFolks() { \t\treturn folks; \t} } <\/code><\/pre>\n<p>  \u041e\u0441\u043d\u043e\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0432 Android \u2014 \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 <code>BaseAdapter<\/code>. \u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b, \u043a\u0430\u0441\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0438 \u0435\u0433\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u0438 (<code>getCount()<\/code>, <code>getItem()<\/code>, <code>getItemId()<\/code>), \u0438 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043c\u0435\u0442\u043e\u0434 <code>getView()<\/code>. \u0412\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0432\u044c\u044e (\u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u043f\u0438\u0441\u043a\u0430) \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0438\u0445\u043d\u0443\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u043f\u043e\u0440\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435). \u0415\u0441\u043b\u0438 \u0432\u044c\u044e \u0443\u0436\u0435 \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u2014 \u0441\u043e\u0437\u0434\u0430\u0435\u043c. <\/p>\n<p>  \u042d\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u0435\u0442\u0441\u044f \u0432 Android \u0434\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0441\u043f\u0438\u0441\u043a\u043e\u0432. \u0427\u0442\u043e \u043d\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e \u2014 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 <code>ViewHolder<\/code>. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <code>findViewById()<\/code> \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441 <code>TextEdit<\/code>&#8216;\u044b \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c. \u0410 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u043e \u0438 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 performance. \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0431\u044b\u043b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043d \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434: \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445 \u0432 \u0442\u0435\u0433 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u044c\u044e\u0432\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 nested-\u043a\u043b\u0430\u0441\u0441 ViewHolder. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u0445 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e\u0439 \u0432\u043e \u0432\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u0441\u0442\u0430\u0442\u044c\u0435 (\u0442\u0430\u043c \u0432\u0441\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e), \u0430 \u043c\u044b \u0438\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p>  \u041a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u041a\u0430\u043a \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u0445 \u043d\u0430 \u043b\u0435\u0442\u0443 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430. \u041d\u043e \u043d\u0430\u043c \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0435\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437, \u043a\u043e\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u0440\u0435\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f (\u0441\u043a\u0440\u043e\u043b\u043b\u0438\u0442\u0441\u044f) \u043d\u0430\u0448 \u0441\u043f\u0438\u0441\u043e\u043a \u2014 \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0432\u044b\u0433\u043e\u0434\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0443\u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0435\u0448, \u0447\u0442\u043e \u043c\u044b \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <code>FbUser[] folks;<\/code> \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c: \u0431\u044b\u043b \u043b\u0438 \u0443\u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043d\u043e\u043c\u0435\u0440\u0443 \u0441\u0442\u0440\u043e\u043a\u0438. \u0415\u0441\u043b\u0438 \u0434\u0430 \u2014 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u2014 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u041e\u0431 \u044d\u0442\u043e\u043c \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u0434\u0430\u043b\u0435\u0435.<\/p>\n<h4>FetchDataTask<\/h4>\n<p>  \u0412\u043e\u0442 \u043c\u044b, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0438 \u0434\u043e\u0448\u043b\u0438 \u0434\u043e \u043b\u0435\u043d\u0438\u0432\u043e\u0441\u0442\u0438. \u041a\u0430\u043a \u043c\u044b \u0443\u0436\u0435 \u043f\u043e\u043d\u044f\u043b\u0438, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435 \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e, \u0430 \u043d\u0430\u043c \u0443\u0436\u0435 \u043d\u0430\u0434\u043e \u0435\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0434\u043e \u043d\u0435\u0433\u043e \u0434\u043e\u0448\u0435\u043b \u0441\u043a\u0440\u043e\u043b\u043b\u0438\u043d\u0433. \u041f\u0440\u043e\u043a\u0440\u0430\u0441\u0442\u0438\u043d\u0430\u0446\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442 \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f, \u043c\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0441\u043f\u0438\u043d\u043d\u0435\u0440 (\u043a\u0440\u0443\u0442\u044f\u0449\u0438\u0439\u0441\u044f \u043a\u0440\u0443\u0436\u043e\u0447\u0435\u043a \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438) \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u0430\u0432\u0430\u0442\u0430\u0440\u043a\u0438, \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u0435\u0433\u043e \u043d\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0430\u0432\u0430\u0442\u0430\u0440, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f. \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0443\u0442\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <code>AsyncTask<\/code>&#8216;\u0430, \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c UI-\u0442\u0440\u0435\u0434. \u0418\u0442\u0430\u043a, \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c \u0432\u0441\u0435 \u0432\u044b\u0448\u0435\u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0432 \u043a\u043e\u0434\u0435:<\/p>\n<pre><code class=\"java\">public class FetchDataTask extends AsyncTask&lt;Void, Void, FbUser&gt; { \tprivate Activity activity; \tprivate LazyAdapter adapter; \tprivate int position; \tprivate TextView textViewMate; \tprivate ProgressBar spinner; \tprivate String id;  \t\/** \t * Get necessary UI objects. \t *\/ \tpublic FetchDataTask(Activity activity, LazyAdapter adapter, int position, \t\t\tTextView textView, ProgressBar spinner, String id) { \t\tthis.activity = activity; \t\tthis.adapter = adapter; \t\tthis.position = position; \t\tthis.textViewMate = textView; \t\tthis.spinner = spinner; \t\tthis.id = id; \t}  \t\/** \t * Background bitmap fetching and pasting it into FbUser. \t *\/ \t@Override \tprotected FbUser doInBackground(Void... params) { \t\tFbUser user = new FbUser(id);  \t\tBitmap bitmap = null; \t\ttry { \t\t\tHttpURLConnection httpUrlConnection; \t\t\thttpUrlConnection = (HttpURLConnection) new java.net.URL( \t\t\t\t\tuser.getPicture()).openConnection(); \t\t\thttpUrlConnection.setReadTimeout(10000); \t\t\thttpUrlConnection.setConnectTimeout(10000); \t\t\tInputStream inputStream = httpUrlConnection.getInputStream(); \t\t\tBufferedInputStream bufferedInputStream = new BufferedInputStream( \t\t\t\t\tinputStream); \t\t\tbitmap = BitmapFactory.decodeStream(bufferedInputStream); \t\t\tbufferedInputStream.close(); \t\t\tinputStream.close(); \t\t\thttpUrlConnection.disconnect();  \t\t} catch (MalformedURLException e) { \t\t} catch (IOException e) { \t\t}  \t\tuser.setBitmap(bitmap);  \t\treturn user; \t}  \t\/** \t * Setting the UI: hide progress bar, display both images (userpic on the \t * left and tiny icon on the right) and user's full name \t *\/ \t@Override \tprotected void onPostExecute(FbUser result) { \t\tsuper.onPostExecute(result); \t\tadapter.getFolks()[position] = result; \/\/ caching current user by it's position \t\ttextViewMate.setText(result.getName()); \t\tspinner.setVisibility(View.GONE); \t\ttextViewMate \t\t\t\t.setCompoundDrawablesWithIntrinsicBounds( \t\t\t\t\t\tnew BitmapDrawable(activity.getResources(), result \t\t\t\t\t\t\t\t.getBitmap()), \t\t\t\t\t\tnull, \t\t\t\t\t\tactivity.getResources().getDrawable( \t\t\t\t\t\t\t\tR.drawable.facebook_icon), null); \t} } <\/code><\/pre>\n<p>  \u041a\u043e\u0434 \u0441\u043d\u0430\u0431\u0436\u0435\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0434\u0430\u0436\u0435 \u043d\u0435 \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0435\u0449\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c. \u041a\u043b\u0430\u0441\u0441 <code>FbUser<\/code> \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435, \u0442.\u043a. \u043e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0441\u043f\u043e\u043c\u0430\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0438 \u0441\u043b\u0443\u0436\u0438\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 Facebook Graph API. \u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0432\u0441\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f <code>FbUser<\/code>, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043d\u0430 <a href=\"http:\/\/spinlist.autsia.com\/\">GitHub<\/a>.<\/p>\n<p>  \u0427\u0443\u0442\u044c \u043d\u0435 \u0437\u0430\u0431\u044b\u043b. \u0414\u043e\u0431\u0430\u0432\u043b\u044e \u0440\u0435\u0441\u0443\u0440\u0441\u043d\u0443\u044e XML&#8217;\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043e\u0432 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0438 \u0438\u043d\u0444\u043b\u0430\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0432\u044c\u044e:<\/p>\n<pre><code class=\"xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;RelativeLayout xmlns:android=&quot;http:\/\/schemas.android.com\/apk\/res\/android&quot;     android:layout_width=&quot;fill_parent&quot;     android:layout_height=&quot;wrap_content&quot; &gt;      &lt;TextView         android:id=&quot;@+id\/textViewUser&quot;         android:layout_width=&quot;fill_parent&quot;         android:layout_height=&quot;80dp&quot;         android:layout_alignParentTop=&quot;true&quot;         android:drawablePadding=&quot;5dp&quot;         android:gravity=&quot;center_vertical&quot;         android:paddingLeft=&quot;5dp&quot;         android:paddingRight=&quot;10dp&quot;         android:textSize=&quot;25dp&quot; \/&gt;      &lt;ProgressBar         android:id=&quot;@+id\/progressBar&quot;         android:layout_width=&quot;wrap_content&quot;         android:layout_height=&quot;wrap_content&quot;         android:layout_centerVertical=&quot;true&quot;         android:paddingLeft=&quot;15dp&quot; \/&gt;  &lt;\/RelativeLayout&gt; <\/code><\/pre>\n<h4>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u043a\u043e\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u043c. \u0412\u043a\u043e\u043d\u0446\u0435 \u0445\u043e\u0447\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u044f\u0434 \u0441\u0441\u044b\u043b\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0433\u043b\u0443\u0431\u0436\u0435 \u0432\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0432 \u043a\u0443\u0440\u0441 \u0434\u0435\u043b\u0430:  <\/p>\n<ul>\n<li><a href=\"http:\/\/developer.android.com\/reference\/android\/app\/ListActivity.html\">developer.android.com\/reference\/android\/app\/ListActivity.html<\/a><\/li>\n<li><a href=\"http:\/\/developer.android.com\/reference\/android\/widget\/BaseAdapter.html\">developer.android.com\/reference\/android\/widget\/BaseAdapter.html<\/a><\/li>\n<li><a href=\"http:\/\/developer.android.com\/training\/improving-layouts\/smooth-scrolling.html\">developer.android.com\/training\/improving-layouts\/smooth-scrolling.html<\/a><\/li>\n<li><a href=\"http:\/\/developer.android.com\/reference\/android\/os\/AsyncTask.html\">developer.android.com\/reference\/android\/os\/AsyncTask.html<\/a><\/li>\n<\/ul>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/167139\/\"> http:\/\/habrahabr.ru\/post\/167139\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" align=\"left\" src=\"http:\/\/habrastorage.org\/storage2\/254\/6fc\/39d\/2546fc39d0f76f7a04e939df66d821d0.png\"\/>   <\/p>\n<h4>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 <\/h4>\n<p>  \u041d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0443\u0436\u0435 <a href=\"http:\/\/habrahabr.ru\/post\/133575\/\">\u0435\u0441\u0442\u044c<\/a> \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438 ListView \u0432 Android, \u043d\u043e \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u043f\u0440\u0435\u043f\u043e\u0434\u043d\u0435\u0441\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0432\u0438\u0434\u0435 \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 (\u0438\u0437 \u0436\u0438\u0437\u043d\u0438). \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u043c\u044b \u043f\u0438\u0448\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0443\u043c\u0435\u0442\u044c \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u0437 Facebook. \u0418 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0442\u0443\u0434\u0430, \u0430 \u0435\u0449\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437 Google+. \u0418 \u0432\u0441\u0435 \u044d\u0442\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u043e\u0434\u0438\u043d \u0441\u043f\u0438\u0441\u043e\u043a, \u043f\u0440\u0438\u0447\u0435\u043c \u0441\u043b\u0435\u0432\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0430\u0432\u0430\u0442\u0430\u0440\u043a\u0430, \u0430 \u0441\u043f\u0440\u0430\u0432\u0430 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u043e\u0439 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0442\u0430\u043a\u0442 (\u0441\u043c. \u0440\u0438\u0441\u0443\u043d\u043e\u043a \u0441\u043b\u0435\u0432\u0430). \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 (\u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0430\u0432\u0430\u0442\u0430\u0440\u043a\u0430) \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u044f \u2014 \u0447\u0435\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0443 \u043d\u0430\u0441 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 <a href=\"http:\/\/risovach.ru\/upload\/2012\/hand\/nelzya-prosto-tak-vzyat-i_orig_.jpg\">\u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c<\/a> \u0438 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b, \u0430 \u043f\u043e\u0442\u043e\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043d\u0430\u0448 \u0441\u043f\u0438\u0441\u043e\u043a, \u0438\u043d\u0430\u0447\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u0443\u044e \u043a\u043d\u0438\u0433\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0435\u0440\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u0441\u0435\u043a\u0443\u043d\u0434 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a. \u0412\u044b\u0445\u043e\u0434 \u0438\u0437 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442.\u043d. \u00ab\u043b\u0435\u043d\u0438\u0432\u043e\u0433\u043e\u00bb \u0441\u043f\u0438\u0441\u043a\u0430 (lazy list). \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-167139","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/167139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=167139"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/167139\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=167139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=167139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=167139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}