Представление сетки требует времени для загрузки

У меня есть представление сетки в onCreate. Я создаю представление сетки, получая URL-адрес изображения из локальной базы данных. Но когда это действие загружается, оно показывает белый экран.

Как удалить этот белый экран, я не знаю, куда переместить этот gredview. Я прилагаю полный код, пожалуйста, скажите мне, что мне делать. Попробуйте нажать кнопку синхронизации, эта кнопка синхронизации сначала очистит локальную базу данных, а затем получит все xml с сервера и поместите его в локальную базу данных, после чего это действие будет перезапущено, затем будет вызван этот метод onCreat, и будет показан пустой белый экран.

CODE URL http://www.fileconvoy.com/dfl.php?id=g2561f0a6e7dcc50b99926566c09078e556 а>

Мой код следует

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    gridview = (GridView) findViewById(R.id.gridview);
    gridview.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
        {
            String pdfPath = Environment.getExternalStorageDirectory().toString() + "/ICA Faculty/";
            Toast.makeText(getApplicationContext(),pdfPath+((TextView) v.findViewById(R.id.hiddenPdfUrl)).getText(), Toast.LENGTH_SHORT).show();

            try {
                File file = new File(pdfPath+((TextView) v.findViewById(R.id.hiddenPdfUrl)).getText());
                Uri path = Uri.fromFile(file);
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setDataAndType(path, "application/pdf");
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);
            } catch (Exception e) {
                Toast.makeText(getApplicationContext(),"Sorry no PDF reader found.", Toast.LENGTH_SHORT).show();
            }
        }
    });

    File folder = new File(Environment.getExternalStorageDirectory() + "/ICA Faculty");

    db.open();
    c = db.getAllRecords();

    //If data exist in local database AND "ICA Faculty" folder exist 
    //Getting the sd card file name from local database
    if (c.moveToFirst() && folder.exists() && folder.listFiles() != null)
    {
        //This array list will help to create image
        imgUrl = new ArrayList<String>();
        pdfUrl = new ArrayList<String>();
                do 

                    imgUrl.add(c.getString(3));
                    pdfUrl.add(c.getString(2));

                }  while (c.moveToNext());

                ImageAdapter adapter = new ImageAdapter(MainActivity.this);
                gridview.setAdapter(adapter);
    }
    else
    {
        Toast.makeText(getApplicationContext(), "You need to sync to create your library.", Toast.LENGTH_LONG).show();
    }
    db.close();
}

person Anirban    schedule 13.04.2013    source источник


Ответы (1)


GridView, как подкласс AdapterView, может использовать пустое представление, чтобы показать отсутствие данных с помощью метода setEmptyView().

Например, посмотрите на этот вопрос Правильное использование setEmtpyView в AdapterView

person gipi    schedule 13.04.2013
comment
если вы опубликуете обновление с тем, что вы пробовали, возможно, кто-то может вам помочь - person gipi; 13.04.2013
comment
это файл проекта fileconvoy.com/ - person Anirban; 16.04.2013