package com.hyrt.cei.ui.phonestudy; import java.util.ArrayList; import java.util.List; import com.hyrt.cei.R; import com.hyrt.cei.application.CeiApplication; import com.hyrt.cei.dzb.ui.HomePageDZB; import com.hyrt.cei.ui.phonestudy.adapter.GridViewAdapter; import com.hyrt.cei.ui.phonestudy.adapter.PhoneStudyAdapter; import com.hyrt.cei.ui.phonestudy.view.MenuGridView; import com.hyrt.cei.util.MyTools; import com.hyrt.cei.util.XmlUtil; import com.hyrt.cei.vo.ColumnEntry; import com.hyrt.cei.vo.Courseware; import com.hyrt.cei.webservice.service.Service; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.Animation; import android.view.animation.Animation.AnimationListener; import android.view.animation.TranslateAnimation; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; /** * 推荐课件 * */ public class NominateActivity extends Activity implements OnClickListener, OnItemClickListener { // 课件集合 private List<Courseware> coursewares = new ArrayList<Courseware>(); private List<Courseware> courses = new ArrayList<Courseware>(); // 业务集合 private List<ColumnEntry> columnEntries; private static final int LVDATA_KEY = 1; private static final int NO_NET = 2; private ListView lv; private PhoneStudyAdapter phoneStudyAdapter; private MenuGridView gridView; // 当前查询的业务课件id private String oldFunctionId = ""; // 当前查询的业务课件id private String currentFunctionId; // 当前页码 private int index = 0; // 用户名 private String loginName; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.phone_study_nominate); SharedPreferences settings = getSharedPreferences("loginInfo",Activity.MODE_PRIVATE); loginName = settings.getString("LOGINNAME", ""); overridePendingTransition(R.anim.push_in, R.anim.push_out); initBottom(); for (int i = 0; i < HomePageActivity.phoneStudyContainer.size(); i++) { try { NominateActivity isNominateActivity = (NominateActivity) (HomePageActivity.phoneStudyContainer .get(i)); isNominateActivity.finish(); } catch (Exception e) { } } HomePageActivity.phoneStudyContainer.add(this); registEvent(); loadData(); } @Override protected void onDestroy() { HomePageActivity.phoneStudyContainer.remove(this); super.onDestroy(); } // 更多按钮 private LinearLayout footer; private void loadData() { ColumnEntry columnEntry = ((CeiApplication) (getApplication())).columnEntry; if(columnEntry .getColByName(HomePageActivity.PHONE_NAME,columnEntry.getColByName(HomePageActivity.MODEL_NAME).getId()) == null) return; columnEntries = columnEntry.getEntryChildsForParent(columnEntry .getColByName(HomePageActivity.PHONE_NAME,columnEntry.getColByName(HomePageActivity.MODEL_NAME).getId()).getId()); lv = (ListView) findViewById(R.id.phone_study_listview); footer = (LinearLayout) LayoutInflater.from(this).inflate( R.layout.phone_study_listview_bottom, null); footer.findViewById(R.id.phone_study_morebtn).setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { index++; for (int i = index * 20; i < (index + 1) * 20 && i < courses.size(); i++) { if (i == courses.size() - 1) footer.setVisibility(View.GONE); coursewares.add(courses.get(i)); } phoneStudyAdapter.notifyDataSetChanged(); } }); lv.addFooterView(footer); GridViewAdapter gridViewAdapter = new GridViewAdapter(this, columnEntries); gridView = (MenuGridView) findViewById(R.id.phone_study_gridview); gridView.setAdapter(gridViewAdapter, 7); gridView.setOnItemClickListener(this); findViewById(R.id.phone_study_progressLl).setVisibility(View.VISIBLE); loadDataForView(columnEntries.get(0).getId()); } Handler dataHandler = new Handler() { @Override public void dispatchMessage(Message msg) { findViewById(R.id.phone_study_progressLl).setVisibility(View.GONE); switch (msg.arg1) { case LVDATA_KEY: for (int i = index * 20; i < (index + 1) * 20 && i < courses.size(); i++) { if (i == courses.size() - 1) { footer.setVisibility(View.GONE); } else { if (footer.getVisibility() == View.GONE) footer.setVisibility(View.VISIBLE); } coursewares.add(courses.get(i)); } phoneStudyAdapter = new PhoneStudyAdapter( NominateActivity.this, R.layout.phone_study_listview_item, coursewares, lv,true); lv.setAdapter(phoneStudyAdapter); lv.setSelection(0); break; case NO_NET: MyTools.exitShow(NominateActivity.this, ((Activity)NominateActivity.this).getWindow().getDecorView(), "网络有问题!"); break; } } }; /** * 获取某一业务下的课件列表 * * @param functionId */ private void loadDataForView(final String functionId) { // 检查sd卡是否存在不存在的话,则退出 if (!Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { MyTools.exitShow(this, ((Activity)this).getWindow().getDecorView(), "sd卡不存在!"); this.finish(); return; } new Thread(new Runnable() { @Override public void run() { // 获取数据 if (((CeiApplication) getApplication()).isNet()) { String result = Service.queryPhoneFunctionTree(functionId,"kj"); if (XmlUtil.parseReturnCode(result).equals("")) { XmlUtil.parseCoursewares(result, courses); result = Service .queryCourse(((CeiApplication) (getApplication())).columnEntry .getUserId()); List<Courseware> selfselCoursewares = new ArrayList<Courseware>(); XmlUtil.parseCoursewares(result, selfselCoursewares); for (int i = 0; i < courses.size(); i++) { for (int j = 0; j < selfselCoursewares.size(); j++) { if (courses .get(i) .getClassId() .equals(selfselCoursewares.get(j) .getClassId())) { courses.get(i).setSelfCourse(true); } } courses.get(i).setParentId(functionId); ((CeiApplication) getApplication()).dataHelper .saveCourseware(courses.get(i)); } Message message = dataHandler.obtainMessage(); message.arg1 = LVDATA_KEY; dataHandler.sendMessage(message); } else { Message message = dataHandler.obtainMessage(); message.arg1 = NO_NET; dataHandler.sendMessage(message); } } else { Courseware courseware = new Courseware(); courseware.setParentId(functionId); courses = ((CeiApplication) (NominateActivity.this .getApplication())).dataHelper .getCoursewares(courseware); Message message = dataHandler.obtainMessage(); message.arg1 = LVDATA_KEY; dataHandler.sendMessage(message); } } }).start(); } private void registEvent() { findViewById(R.id.back_btn).setOnClickListener(this); findViewById(R.id.phone_study_refresh).setOnClickListener(this); findViewById(R.id.phone_study_search_btn).setOnClickListener(this); findViewById(R.id.phone_study_downmanager).setOnClickListener(this); } private void initBottom() { ImageView headIv = (ImageView) findViewById(R.id.phone_study); ImageView newIv = (ImageView) findViewById(R.id.phone_study_new); ImageView nominateIv = (ImageView) findViewById(R.id.phone_study_nominate); ImageView freeIv = (ImageView) findViewById(R.id.phone_study_free); ImageView kindIv = (ImageView) findViewById(R.id.phone_study_kind); ImageView selfIv = (ImageView) findViewById(R.id.phone_study_self); ImageView studyIv = (ImageView) findViewById(R.id.phone_study_study); ImageView sayIv = (ImageView) findViewById(R.id.phone_study_say); headIv.setOnClickListener(this); newIv.setOnClickListener(this); nominateIv.setOnClickListener(this); freeIv.setOnClickListener(this); kindIv.setOnClickListener(this); selfIv.setOnClickListener(this); studyIv.setOnClickListener(this); sayIv.setOnClickListener(this); } @Override public void onClick(View v) { Intent intent = null; switch (v.getId()) { case R.id.back_btn: this.finish(); break; case R.id.phone_study_search_btn: intent = new Intent(this, SearchCourseActivity.class); startActivity(intent); break; case R.id.phone_study_downmanager: intent = new Intent(this, PreloadActivity.class); startActivity(intent); break; case R.id.phone_study: intent = new Intent(this, HomePageDZB.class); startActivity(intent); break; case R.id.phone_study_new: intent = new Intent(this, HomePageActivity.class); startActivity(intent); break; case R.id.phone_study_refresh: intent = new Intent(this, NominateActivity.class); startActivity(intent); break; case R.id.phone_study_free: intent = new Intent(this, FreeActivity.class); startActivity(intent); break; case R.id.phone_study_kind: intent = new Intent(this, KindsActivity.class); startActivity(intent); break; case R.id.phone_study_self: intent = new Intent(this, SelfSelectCourseActivity.class); if (!loginName.equals("")) startActivity(intent); else MyTools.exitShow(NominateActivity.this, ((Activity)NominateActivity.this).getWindow().getDecorView(), "请登陆后查看!"); break; case R.id.phone_study_study: intent = new Intent(this, PlayRecordCourseActivity.class); if (!loginName.equals("")) startActivity(intent); else MyTools.exitShow(NominateActivity.this, ((Activity)NominateActivity.this).getWindow().getDecorView(), "请登陆后查看!"); break; case R.id.phone_study_say: intent = new Intent(this, SayGroupListActivity.class); if (!loginName.equals("")) startActivity(intent); else MyTools.exitShow(NominateActivity.this, ((Activity)NominateActivity.this).getWindow().getDecorView(), "请登陆后查看!"); break; } } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String functionId = columnEntries.get(position).getId(); currentFunctionId = functionId; if (oldFunctionId.equals(currentFunctionId)) return; oldFunctionId = currentFunctionId; for (int i = 0; i < parent.getChildCount(); i++) { RelativeLayout rl = (RelativeLayout) parent.getChildAt(i); if (i == position) { ((ImageView) rl.getChildAt(0)) .setImageResource(R.drawable.phone_study_menu_select); ((TextView) rl.getChildAt(1)).setTextColor(Color.WHITE); } else { ((ImageView) rl.getChildAt(0)).setImageDrawable(null); ((TextView) rl.getChildAt(1)).setTextColor(Color.BLUE); } } index = 0; courses.clear(); coursewares.clear(); loadDataForView(functionId); } }