Android: сделать LazyLoading ListView от GSON доступным без интернета - PullRequest
0 голосов
/ 16 мая 2011

Я только что внедрил GSON в LazyLoading ListView Федора. Это означает, что приложение сохраняет загруженные изображения и тексты из Интернета во внешнее хранилище через класс ImageLoader.

и мне интересно, как сделать этот просмотр списка доступным без подключения к интернету. Здесь я приведу фрагмент моего класса ListView:

public class ProjectsList extends Activity {
    ListView lstTest;

    ProjectAdapter arrayAdapter;

    ArrayList<Project> prjcts=null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.projects_list);

        //Initialize ListView
        lstTest= (ListView)findViewById(R.id.lstText);

        prjcts = new ArrayList<Project>();

        arrayAdapter = new ProjectAdapter(ProjectsList.this, R.layout.listitems,prjcts,ProjectsList.this);

            lstTest.setAdapter(arrayAdapter);
            if (isOnline())
            {
        WebService webService = new WebService("http://liebenwald.spendino.net/admanager/dev/android/projects.json");

        Map<String, String> params = new HashMap<String, String>();
        params.put("var", "");

        String response = webService.webGet("", params);

        try
        {
            Type collectionType = new TypeToken<ArrayList<Project>>(){}.getType();
            List<Project> lst= new Gson().fromJson(response, collectionType);


            for(Project l : lst)
            {
                prjcts.add(l);
                ConstantData.projectsList.add(l);
            }

            arrayAdapter.notifyDataSetChanged();
        }
        catch(Exception e)
        {
            Log.d("Error: ", e.getMessage());
        }
       }


        lstTest.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {              
                Intent care = new Intent(ProjectsList.this, ProjectDetail.class);
                care.putExtra("spendino.de.ProjectDetail.position",position);
                startActivity(care);
            }
        });

    }
    @Override
    public void onDestroy()
    {
        yAdapter.imageLoader.stopThread();
        lstTest.setAdapter(null);
        super.onDestroy();
    }

    protected boolean isOnline() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnected()) {
            return true;
        } else {
                 }
             });
            return false;
        }
    }


}

Пожалуйста, сообщите, требуется ли больше моих кодов. Спасибо

1 Ответ

1 голос
/ 16 мая 2011

Послушайте, вам нужно иметь данные в своем приложении, чтобы вы могли вызывать их, когда нет подключения к Интернету ...

Когда вы получаете данные, сохраните их где-нибудь в своем приложении. Затем передайте данные в Adapter ..

Изображения больше не будут загружаться ...

В ленилисте Федора URL изображений статичен, но здесь они появляются динамически.

Надеюсь, это поможет вам.

...