Bonjour,

Je me retrouve face à un problème, je charge un fichier Excel et celui ci met un petit moment avant de se charger et de s'afficher, pour que l'utilisateur ne pense pas que l'application ait buguer, j'aimerai afficher un progressDialog ( idéalement une progressBar mais je verrais par la suite) pendant que le fichier se charge.

J'arrive à afficher le progressDialog, celui ci reste plus ou moins de temps en fonction de la taille de mon fichier Excel, mais par la suite rien ne s'affiche, qu'une page blanche.

Merci de votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
 
 
public class DisplayMyCoProd extends Activity {
 
    ArrayList<Locom> myList;
    LocomAdpater dataAdapter;
    ListView listView;
    String pathFile;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.display_my_co_prod);
 
        myList = new ArrayList<Locom>();
 
        Intent intent = getIntent();
        pathFile = intent.getStringExtra("EXTRA_pathFile");
 
        TextView txtv = (TextView)findViewById(R.id.textView);
        txtv.setText(pathFile);
 
        dataAdapter = new LocomAdpater(this, myList);
 
        listView = (ListView) findViewById(R.id.display_listview);
        listView.setAdapter(dataAdapter);
 
        listView.setOnItemClickListener(new ItemListView());
 
        new MyTask().execute();
 
    }
 
 
    class MyTask extends AsyncTask<Void, Void, Void> {
 
        ProgressDialog progressDialog;
        private LocomAdpater adapter;
 
        @Override
        protected void onPreExecute() {
            adapter = (LocomAdpater)listView.getAdapter();
            progressDialog = ProgressDialog.show(DisplayMyCoProd.this, "Chargement en cours", "Veuillez patienter...", false, false);
 
        }
 
        @Override
        protected Void doInBackground(Void... params) {
            try {
                AssetManager am = getAssets();
                InputStream is = am.open(pathFile);
                Workbook wb = Workbook.getWorkbook(is);
                Sheet sheet = wb.getSheet(0);
                int row = sheet.getRows();
                int col = sheet.getColumns();
 
                String xx = "";
 
                for (int i = 13; i < row; i++) {
                    Locom locom;
                    locom = new Locom("Engin","Visite");
 
                    for (int c = 1; c < col; c++) {
                        Cell cell = sheet.getCell(c,i);
 
                        switch (c) {
                            case 1:
                                locom.setVisite(cell.getContents());
                                break;
                            case 2:
                                locom.setEngin(cell.getContents());
                                break;
                            default:
                                break;
                        }
                        xx = xx + cell.getContents();
                    }
                    myList.add(locom);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
 
      /*  @Override
        protected void onProgressUpdate(ArrayList<Locom>... values) {
            adapter.add(values[0]);
            count++;
            setProgress((int)(((double))));
        }*/
 
        @Override
        protected void onPostExecute(Void aVoid) {
 
            progressDialog.dismiss();
            Toast.makeText(DisplayMyCoProd.this,"Chargement réussi !", Toast.LENGTH_LONG).show();
        }
    }
 
    private class ItemListView implements AdapterView.OnItemClickListener {
 
 
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 
            ViewGroup vg = (ViewGroup)view;
            TextView tv_e = (TextView)vg.findViewById(R.id.tv_engin);
            TextView tv_v = (TextView)vg.findViewById(R.id.tv_visite);
 
            String engin = tv_e.getText().toString();
            String visite = tv_v.getText().toString();
 
            Toast.makeText(DisplayMyCoProd.this,engin +" : "+ visite, Toast.LENGTH_SHORT).show();
 
            Intent ChoixDMCPActivity = new Intent(DisplayMyCoProd.this, ChoixDMCP.class);
            ChoixDMCPActivity.putExtra("EXTRA_TV_E",engin);
            ChoixDMCPActivity.putExtra("EXTRA_TV_V",visite);
            startActivity(ChoixDMCPActivity);
        }
    }
}