/** 更新 */ public void updatePragram() { if (list_1 != null && TSetting.getWeekDay != DateUtils.getDateToInt()) { list_1.clear(); list_1 = null; list_2.clear(); list_2 = null; list_3.clear(); list_3 = null; list_4.clear(); list_4 = null; } new InitData().execute(); }
@Override protected Void doInBackground(Void... paramArrayOfVoid) { try { if (list_1 == null) { LivePragram livePragram = new LivePragram(); TypePragrams typePragrams = null; for (int i = 0; i < 4; i++) { TypeLive live = listItems.get(i); String url = live.getLive_pragram_url() + weekDay + ".html"; switch (i) { case 0: list_1 = livePragram.ParsePragram(url); typePragrams = list_1.get(0); listItems.get(i).setLive_content(typePragrams.getTitle()); break; case 1: list_2 = livePragram.ParsePragram(url); typePragrams = list_2.get(0); listItems.get(i).setLive_content(typePragrams.getTitle()); break; case 2: list_3 = livePragram.ParsePragram(url); typePragrams = list_3.get(0); listItems.get(i).setLive_content(typePragrams.getTitle()); break; case 3: list_4 = livePragram.ParsePragram(url); typePragrams = list_4.get(0); listItems.get(i).setLive_content(typePragrams.getTitle()); break; } } } else { int cur_time = DateUtils.getDateToInt(); int count = list_1.size(); for (int i = 1; i < count; i++) { Date curr = DateUtils.getStringToDate(list_1.get(i).getTime().trim()); int cur = DateUtils.getDateToInt(curr); if (cur_time < cur) { listItems.get(0).setLive_content(list_1.get(i - 1).getTitle()); break; } } count = list_2.size(); for (int i = 1; i < count; i++) { Date curr = DateUtils.getStringToDate(list_2.get(i).getTime().trim()); int cur = DateUtils.getDateToInt(curr); if (cur_time < cur) { listItems.get(1).setLive_content(list_2.get(i - 1).getTitle()); break; } } count = list_3.size(); for (int i = 1; i < count; i++) { Date curr = DateUtils.getStringToDate(list_3.get(i).getTime().trim()); int cur = DateUtils.getDateToInt(curr); if (cur_time < cur) { listItems.get(2).setLive_content(list_3.get(i - 1).getTitle()); break; } } count = list_4.size(); for (int i = 1; i < count; i++) { Date curr = DateUtils.getStringToDate(list_4.get(i).getTime().trim()); int cur = DateUtils.getDateToInt(curr); if (cur_time < cur) { listItems.get(3).setLive_content(list_4.get(i - 1).getTitle()); break; } } } } catch (Exception e) { e.printStackTrace(); } return null; }
public class LivePageAdapter extends BaseAdapter { private LayoutInflater inflater; private List<TypeLive> listItems; private int weekDay = DateUtils.getTodayWeekDay(); private ArrayList<TypePragrams> list_1 = null, list_2 = null, list_3 = null, list_4 = null; public LivePageAdapter(Context context) { inflater = LayoutInflater.from(context); } public void setList(List<TypeLive> listItems) { this.listItems = listItems; new InitData().execute(); } /** 更新 */ public void updatePragram() { if (list_1 != null && TSetting.getWeekDay != DateUtils.getDateToInt()) { list_1.clear(); list_1 = null; list_2.clear(); list_2 = null; list_3.clear(); list_3 = null; list_4.clear(); list_4 = null; } new InitData().execute(); } @Override public int getCount() { if (listItems != null) { return listItems.size(); } return 0; } @Override public Object getItem(int position) { return listItems.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { viewHolder = new ViewHolder(); convertView = inflater.inflate(R.layout.listview_item, null); viewHolder.live_title = (TextView) convertView.findViewById(R.id.item_title); viewHolder.live_content = (TextView) convertView.findViewById(R.id.item_conten); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } TypeLive typeLive = listItems.get(position); viewHolder.live_title.setText(typeLive.getLive_title()); viewHolder.live_content.setText(typeLive.getLive_content()); return convertView; } class ViewHolder { private TextView live_title; private TextView live_content; } class InitData extends AsyncTask<Void, Void, Void> { InitData() {} @Override protected Void doInBackground(Void... paramArrayOfVoid) { try { if (list_1 == null) { LivePragram livePragram = new LivePragram(); TypePragrams typePragrams = null; for (int i = 0; i < 4; i++) { TypeLive live = listItems.get(i); String url = live.getLive_pragram_url() + weekDay + ".html"; switch (i) { case 0: list_1 = livePragram.ParsePragram(url); typePragrams = list_1.get(0); listItems.get(i).setLive_content(typePragrams.getTitle()); break; case 1: list_2 = livePragram.ParsePragram(url); typePragrams = list_2.get(0); listItems.get(i).setLive_content(typePragrams.getTitle()); break; case 2: list_3 = livePragram.ParsePragram(url); typePragrams = list_3.get(0); listItems.get(i).setLive_content(typePragrams.getTitle()); break; case 3: list_4 = livePragram.ParsePragram(url); typePragrams = list_4.get(0); listItems.get(i).setLive_content(typePragrams.getTitle()); break; } } } else { int cur_time = DateUtils.getDateToInt(); int count = list_1.size(); for (int i = 1; i < count; i++) { Date curr = DateUtils.getStringToDate(list_1.get(i).getTime().trim()); int cur = DateUtils.getDateToInt(curr); if (cur_time < cur) { listItems.get(0).setLive_content(list_1.get(i - 1).getTitle()); break; } } count = list_2.size(); for (int i = 1; i < count; i++) { Date curr = DateUtils.getStringToDate(list_2.get(i).getTime().trim()); int cur = DateUtils.getDateToInt(curr); if (cur_time < cur) { listItems.get(1).setLive_content(list_2.get(i - 1).getTitle()); break; } } count = list_3.size(); for (int i = 1; i < count; i++) { Date curr = DateUtils.getStringToDate(list_3.get(i).getTime().trim()); int cur = DateUtils.getDateToInt(curr); if (cur_time < cur) { listItems.get(2).setLive_content(list_3.get(i - 1).getTitle()); break; } } count = list_4.size(); for (int i = 1; i < count; i++) { Date curr = DateUtils.getStringToDate(list_4.get(i).getTime().trim()); int cur = DateUtils.getDateToInt(curr); if (cur_time < cur) { listItems.get(3).setLive_content(list_4.get(i - 1).getTitle()); break; } } } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); notifyDataSetChanged(); } } }