내 응용 프로그램에서 나는 많은 데이터를 관리하고 그들을 listview에서 봅니다. 데이터가 많습니다. 활동 시작시 일부 장치가 느려지는 것이 아닌가 걱정됩니다 ... 데이터를 표시하기 전에 데이터를로드하기위한 진행 대화 상자를 추가하고 싶습니다. 는이에 대한 예제가 있나요`안드로이드 progressdialog SQLite
private void showDetails(String anno){
SQLiteDatabase db = new BilancioHelper(this).getReadableDatabase();
final List<Dettaglio> dettagli = new ArrayList<Euscite.Dettaglio>(12);
for (int i=1; i<=12; i++){
String mese;
if (i<10){
mese = "0"+i;
} else {
mese = ""+i;
}
String sql = "SELECT _Id,Data,Categoria,Note,Uscita FROM Giornate WHERE uscita>0 AND data LIKE '"+anno+"-"+mese+"%'";
Cursor c = db.rawQuery(sql, null);
while (c.moveToNext()){
Dettaglio d = new Dettaglio();
d.id = c.getInt(0);
d.data = c.getString(1);
d.categorie = (c.getString(2) != null) ? c.getString(2) : "";
d.note = (c.getString(3) != null) ? c.getString(3) : "";
d.uscite = c.getFloat(4);
dettagli.add(d);
}
c.close();
}
db.close();
ListAdapter adapter = new ArrayAdapter<Dettaglio>(this, R.layout.dettaglio_row_uscite, R.id.tv_entrata, dettagli){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = super.getView(position, convertView, parent);
Log.v("Bilancio", "Creo elemento in posizione "+position);
TextView tvData, tvNote, tvUscite, tvId, tvCategorie;
tvData = (TextView) row.findViewById(R.id.tv_data_uscita);
tvUscite = (TextView) row.findViewById(R.id.tv_entrata);
tvCategorie = (TextView) row.findViewById(R.id.tv_cat_uscite);
tvNote = (TextView) row.findViewById(R.id.tv_note_us);
tvId = (TextView) row.findViewById(R.id.tv_id_uscite);
Dettaglio d = dettagli.get(position);
tvData.setText(d.data+"");
tvNote.setText(d.note+"");
tvCategorie.setText(d.categorie+"");
Double value = Double.valueOf(d.uscite);
NumberFormat formatter = NumberFormat.getCurrencyInstance();
String uscite = formatter.format(value);
tvUscite.setText(uscite+"");
tvId.setText(d.id+"");
return row;
}
};
lista.setAdapter(adapter);
내가 입력 한대로 AsyncTask 내 코드에서 ?? 도울 수 있습니까? –
@AndreaMalini 내 대답을 – Day
업데이트했습니다. 클래스를 입력했지만 2와 같이 코드를 분할하는 법을 모릅니다 ... –