SAXBuilder를 통한 xml 파싱을해서
SharedPreferences 로 파싱한 값들을 저장합니다.
그 후에 커스텀리스트뷰에 뿌려주는 작업을하는데요.
데이터 2412개를 불러오는데 4분정도 시간이 소요되서..
속도 개선을 해야될것같은데 어떻게 진행을 해야될지 감이안오네요.
db불러오는 속도가 느린가 체크를했더니 db읽어오는 속도는 3초 정도 걸리는데
리스트뷰에 뿌려주는시간이 오래걸리는거같은데...(일단 제일 의심가는 부분입니다.)
속도 개선을 하려면 어떤방법이 있을까요?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_accountinfo);
.
.
.
String a1 = pref.getString("count", "");
Log.d(TAG, a1);
for (int i = 0; i < Integer.parseInt(a1); i++) {
adddataList(pref.getString("CUSTNAME" + i, ""),
pref.getString("CEO" + i, ""),
pref.getString("TEL" + i, ""),
pref.getString("ADDRESS" + i, ""),
pref.getString("EMPNAME" + i, ""),
pref.getString("CHEMONEY" + i, ""),
pref.getString("CUSTCODE" + i, ""),
pref.getString("CUSTNO" + i, ""),
pref.getString("ZIP" + i, ""),
pref.getString("FAX" + i, ""),
pref.getString("EMAIL" + i, ""),
pref.getString("SLeepCust" + i, ""));
}
.
.
.
}
// 커스텀리스트
private void adddataList(String custname, String ceo, String tel,
String ADRESS, String EMPNAME, String CHEMONEY, String CUSTCODE,
String CUSTNO, String ZIP, String FAX, String EMAIL,
String SLeepCust) {
listdata.add(new EachList_2(custname, ceo, tel, ADRESS, EMPNAME,
CHEMONEY, CUSTCODE, CUSTNO, ZIP, FAX, EMAIL, SLeepCust));
setdataList();
}
// 커스텀리스트
private void setdataList() {
list.setAdapter(li);
}
.
.
.
// 커스텀리스뷰 Adapter
public class listdata_2 extends BaseAdapter {
private Context context;
private ArrayList<EachList_2> datalist;
private int layout;
private LayoutInflater inflater;
private clsUtil clsUtil;
private clsCustomDialog clsDlg;
public listdata_2(Context context, int layout,
ArrayList<EachList_2> listlist) {
this.context = context;
this.layout = layout;
this.datalist = listlist;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return datalist.size();
}
@Override
public Object getItem(int position) {
return datalist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public String getADRESS(int position) {
return datalist.get(position).ADRESS;
}
public String getEMPNAME(int position) {
return datalist.get(position).EMPNAME;
}
public String getCHEMONEY(int position) {
return datalist.get(position).CHEMONEY;
}
public String getcustname(int position) {
return datalist.get(position).custname;
}
public String getceo(int position) {
return datalist.get(position).ceo;
}
public String gettel(int position) {
return datalist.get(position).tel;
}
public String getCUSTCODE(int position) {
return datalist.get(position).CUSTCODE;
}
public String getCUSTNO(int position) {
return datalist.get(position).CUSTNO;
}
public String getZIP(int position) {
return datalist.get(position).ZIP;
}
public String getFAX(int position) {
return datalist.get(position).FAX;
}
public String getEMAIL(int position) {
return datalist.get(position).EMAIL;
}
public String getSLeepCust(int position) {
return datalist.get(position).SLeepCust;
}
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(layout, parent, false);
}
TextView txtcustname = (TextView) convertView
.findViewById(R.id.txtcustname);
TextView txtceo = (TextView) convertView.findViewById(R.id.txtceo);
TextView txttel = (TextView) convertView.findViewById(R.id.txttel);
// 리스트에 뿌리기
txtcustname.setText(datalist.get(position).custname);
txtceo.setText(datalist.get(position).ceo);
txttel.setText(datalist.get(position).tel);
.
.
.
}