package com.hyrt.cei.ui.phonestudy; import java.io.File; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import com.hyrt.cei.R; import com.hyrt.cei.application.CeiApplication; import com.hyrt.cei.db.DataHelper; import com.hyrt.cei.predownload.DownloadProgressListener; import com.hyrt.cei.predownload.DownloadThreadManager; import com.hyrt.cei.predownload.FileDownloader; import com.hyrt.cei.ui.common.WebViewUtil; import com.hyrt.cei.util.MyTools; import com.hyrt.cei.util.ThreadPoolWrap; import com.hyrt.cei.util.XmlUtil; import com.hyrt.cei.util.ZipUtils; import com.hyrt.cei.vo.ColumnEntry; import com.hyrt.cei.vo.Courseware; import com.hyrt.cei.vo.Preload; import com.hyrt.cei.vo.PreloadContolGroup; import com.hyrt.cei.webservice.service.Service; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.Message; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.PopupWindow; import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; /* * * 视频下载管理类 * */ public class PreloadActivity extends Activity { // 持有所有进度条目的集合 private Map<String, PreloadContolGroup> groupMap = new HashMap<String, PreloadContolGroup>(); // 持有所有数据的集合 private Map<String, Preload> preloadMap = new HashMap<String, Preload>(); private LayoutInflater layoutInflater; private List<Preload> preloadList; //自选课列表 private List<Courseware> selfselCoursewares; // 所有进度条目的父级view private LinearLayout linearLayList; private DecimalFormat myformat; private DataHelper dataHelper; public static final int UPDATE_PROGRESS = 1; public static final int UPDATE_DOWNLIST = 2; public static final String FLASH_GATE = "/apad.html"; public static final String FLASH_POSTFIX = ".zip"; public static final String FLASH_UNPOSTFIX = ".yepeng"; // 负责更新进度条 private Handler handler = new Handler() { @Override public void dispatchMessage(Message message) { switch (message.arg1) { case UPDATE_DOWNLIST: // 进入页面初始化线程 DownloadThreadManager.clearThread(); // 获取下载列表,并下载视频 ThreadPoolWrap.getThreadPool().executeTask(rGetPreloadList); break; case UPDATE_PROGRESS: final Preload preload = (Preload) message.getData() .getSerializable("preload"); final PreloadContolGroup preloadcontolgroup = (PreloadContolGroup) message .getData().getSerializable("group"); if (preload.getLoadSumByte() != -1) { String s = myformat.format((100D * (double) preload .getLoadCurrentByte()) / (double) preload.getLoadSumByte()); preloadcontolgroup.getLblPercent().setText( String.valueOf(s)); preloadcontolgroup .getProgressBarDown() .setProgress( (int) ((1000L * (long) preload .getLoadCurrentByte()) / (long) preload .getLoadSumByte())); if (preload.getLoadCurrentByte() >= preload .getLoadSumByte() && preload.getLoadSumByte() != -1) { preload.setLoading(0); preload.setLoadFinish(1); dataHelper.updatePreload(preload); File file = new File(preload.getLoadLocalPath() + FLASH_UNPOSTFIX); file.renameTo(new File(preload.getLoadLocalPath())); // 启动一个线程,去解压已完成下载的视频 new Thread(new Runnable() { @Override public void run() { try { // 解压课件 ZipUtils.unzip( preload.getLoadLocalPath(), preload.getLoadLocalPath().replace( FLASH_POSTFIX, "")); handler.post(new Runnable() { @Override public void run() { preloadcontolgroup .getLinearLayProcessStatus() .setVisibility(View.GONE); preloadcontolgroup .getLinearLayProcess() .setVisibility(View.GONE); preloadcontolgroup.getBtnControl() .setVisibility( View.INVISIBLE); preloadcontolgroup .getBtnPlay() .setVisibility(View.VISIBLE); preloadcontolgroup .getRootRelativeLayout() .setVisibility(View.GONE); // 一个视频加载完毕,下载下一个视频,并为这个视频设置播放事件 preloadcontolgroup .getBtnPlay() .setOnClickListener( new OnClickListener() { @Override public void onClick( View arg0) { Intent intent = new Intent( PreloadActivity.this, WebViewUtil.class); intent.putExtra( "path", "file:///" + preload .getLoadLocalPath() .replace( FLASH_POSTFIX, FLASH_GATE)); intent.putExtra("classId",preload.getLoadPlayId()); intent.putExtra("bdclass",preload.getLoadPlayTitleBelow()+"|"+preload.getLoadPlayTitle()); intent.putExtra("classLength", preload.getClassLength()); startActivity(intent); } }); startDownNext(); } }); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); } } } super.dispatchMessage(message); } }; private ColumnEntry columnEntry; private PopupWindow popWin; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.phone_study_preload); // 检查sd卡是否存在不存在的话,则退出 if (!Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { MyTools.exitShow(this, ((Activity)this).getWindow().getDecorView(), "sd卡不存在!"); this.finish(); return; } ConnectivityManager cManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = cManager.getActiveNetworkInfo(); if(info != null && ConnectivityManager.TYPE_WIFI != info.getType()){ MyTools.exitShow(this, ((Activity)this).getWindow().getDecorView(), "非wifi模式下载,会产生额外流量资费请注意!"); } overridePendingTransition(R.anim.push_in, R.anim.push_out); columnEntry = ((CeiApplication) getApplication()).columnEntry; myformat = new DecimalFormat("#0.00"); layoutInflater = getLayoutInflater(); findViewById(R.id.back_btn).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { PreloadActivity.this.finish(); } }); final ImageView alreLoadBtn = (ImageView) findViewById(R.id.phone_study_preload_alreLoadBtn); final ImageView loadBtn = (ImageView) findViewById(R.id.phone_study_preload_loadingBtn); alreLoadBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { alreLoadBtn .setImageResource(R.drawable.phone_study_preload_aldown_hover); loadBtn.setImageResource(R.drawable.phone_study_preload_down); for (int i = 0; i < linearLayList.getChildCount(); i++) { if (linearLayList .getChildAt(i) .findViewById(R.id.phone_study_preload_item_btnPlay) .getVisibility() == View.VISIBLE) { linearLayList.getChildAt(i).setVisibility(View.VISIBLE); } else { linearLayList.getChildAt(i).setVisibility(View.GONE); } } } }); loadBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { alreLoadBtn .setImageResource(R.drawable.phone_study_preload_aldown); loadBtn.setImageResource(R.drawable.phone_study_preload_down_hover); for (int i = 0; i < linearLayList.getChildCount(); i++) { if (linearLayList .getChildAt(i) .findViewById(R.id.phone_study_preload_item_btnPlay) .getVisibility() != View.VISIBLE) { linearLayList.getChildAt(i).setVisibility(View.VISIBLE); } else { linearLayList.getChildAt(i).setVisibility(View.GONE); } } } }); // 进入页面初始化线程 DownloadThreadManager.clearThread(); // 获取下载列表,并下载视频 ThreadPoolWrap.getThreadPool().executeTask(rGetPreloadList); // 同步课件离线列表 synDownloadClass(); } private Runnable rGetPreloadList = new Runnable() { public void run() { dataHelper = ((CeiApplication) (PreloadActivity.this .getApplication())).dataHelper; preloadList = dataHelper.getPreloadList(); if (preloadList != null) handler.post(rReInitData); } }; private Runnable rReInitData = new Runnable() { public void run() { // 初始化加载条目 initData(); // 初始化每个条目的事件,并下载第一个视频 bindListenerToControlGroup(); } }; private void bindListenerToControlGroup() { boolean isNextBegin = true; Iterator<Preload> iterator = preloadList.iterator(); while (iterator.hasNext()) { final Preload preload = (Preload) iterator.next(); String playId = preload.getLoadPlayId(); final PreloadContolGroup preloadcontolgroup = (PreloadContolGroup) groupMap .get(playId); if (preload.getLoadFinish() == 1) { preloadcontolgroup.getLinearLayProcessStatus().setVisibility( View.GONE); preloadcontolgroup.getLinearLayProcess().setVisibility( View.GONE); preloadcontolgroup.getBtnControl() .setVisibility(View.INVISIBLE); preloadcontolgroup.getBtnPlay().setVisibility(View.VISIBLE); preloadcontolgroup.getBtnPlay().setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent( PreloadActivity.this, WebViewUtil.class); intent.putExtra( "path", "file:///" + preload.getLoadLocalPath() .replace(FLASH_POSTFIX, FLASH_GATE)); intent.putExtra("classId",preload.getLoadPlayId()); intent.putExtra("bdclass",preload.getLoadPlayTitleBelow()+"|"+preload.getLoadPlayTitle()); intent.putExtra("classLength", preload.getClassLength()); startActivity(intent); } }); preloadcontolgroup.getRootRelativeLayout().setVisibility( View.GONE); } else if (preload.getLoading() == 1) { preloadcontolgroup.getProgressBarDown().setMax(1000); preloadcontolgroup.getProgressBarDown() .setProgress( (int) ((1000L * (long) preload .getLoadCurrentByte()) / (long) preload .getLoadSumByte())); String s = myformat.format((100D * (double) preload .getLoadCurrentByte()) / (double) preload.getLoadSumByte()); preloadcontolgroup.getLblPercent().setText(String.valueOf(s)); final Button controlBtn = preloadcontolgroup.getBtnControl(); controlBtn.setTag("暂停"); controlBtn .setBackgroundResource(R.drawable.phone_study_preload_item_pause_bg); controlBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { if (controlBtn.getTag().equals("暂停")) { controlBtn.setTag("开始"); controlBtn .setBackgroundResource(R.drawable.phone_study_preload_item_start_bg); preload.setLoading(0); dataHelper.updatePreload(preload); startDownNext(); } else { controlBtn.setTag("暂停"); controlBtn .setBackgroundResource(R.drawable.phone_study_preload_item_pause_bg); preload.setLoading(1); dataHelper.updatePreload(preload); download(preload); } } }); if (isNextBegin) { download(preload); isNextBegin = false; } } else if (preload.getLoading() != 1) { preloadcontolgroup.getProgressBarDown().setMax(1000); preloadcontolgroup.getProgressBarDown() .setProgress( (int) ((1000L * (long) preload .getLoadCurrentByte()) / (long) preload .getLoadSumByte())); String s = myformat.format((100D * (double) preload .getLoadCurrentByte()) / (double) preload.getLoadSumByte()); preloadcontolgroup.getLblPercent().setText(String.valueOf(s)); final Button controlBtn = preloadcontolgroup.getBtnControl(); controlBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { if (controlBtn.getTag().equals("暂停")) { controlBtn.setTag("开始"); controlBtn .setBackgroundResource(R.drawable.phone_study_preload_item_start_bg); preload.setLoading(0); } else { controlBtn.setTag("暂停"); controlBtn .setBackgroundResource(R.drawable.phone_study_preload_item_pause_bg); preload.setLoading(1); download(preload); } } }); } preloadcontolgroup.getBtnDelete().setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { alertIsSurePop(new OnClickListener() { @Override public void onClick(View v) { linearLayList.removeView(preloadcontolgroup .getRootRelativeLayout()); preload.setLoading(0); preload.setLoadFinish(1); int isSuccessDel = dataHelper.deletePreload(preload .getLoadPlayId()); if (isSuccessDel != -1) { new Thread(new Runnable() { @Override public void run() { if(preload.getLoadLocalPath() != null){ File zipFile = new File(preload .getLoadLocalPath()); File zipYepFile = new File(preload .getLoadLocalPath() + ".yepeng"); zipFile.delete(); zipYepFile.delete(); delFolder(preload.getLoadLocalPath() .replace(FLASH_POSTFIX, "")); } } }).start(); if(preloadcontolgroup.getBtnPlay().getVisibility() != View.VISIBLE) startDownNext(); if(popWin != null) popWin.dismiss(); } } },false); } }); final Button addcourseBtn = preloadcontolgroup.getBtnAddCourse(); addcourseBtn.setVisibility(View.GONE); final Handler handlerVG = new Handler(){ @Override public void dispatchMessage(Message msg) { addcourseBtn.setVisibility(View.VISIBLE); } }; new Thread(new Runnable(){ @Override public void run() { if(selfselCoursewares == null){ String result = Service.queryCourse(((CeiApplication) (PreloadActivity.this.getApplication())).columnEntry.getUserId()); selfselCoursewares = new ArrayList<Courseware>(); XmlUtil.parseCoursewares(result, selfselCoursewares); } boolean isSelfCourse = false; for(int i=0;i<selfselCoursewares.size();i++){ if(selfselCoursewares != null && selfselCoursewares.get(i) != null && selfselCoursewares.get(i).getClassId() != null && preload != null && selfselCoursewares.get(i).getClassId().equals(preload.getLoadPlayId())){ isSelfCourse = true; } } if(!isSelfCourse){ handlerVG.sendMessage(handler.obtainMessage()); } }}).start(); addcourseBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { alertIsSurePop(new OnClickListener() { @Override public void onClick(View arg0) { new Thread(new Runnable() { @Override public void run() { Service.saveCourse(preload.getLoadPlayId(), columnEntry.getUserId()); handler.post(new Runnable() { @Override public void run() { TextView titleTv = (TextView) popWin.getContentView().findViewById(R.id.issure_title); titleTv.setText("加入自选课成功 !"); handler.postDelayed(new Runnable() { @Override public void run() { popWin.dismiss(); } }, 300); addcourseBtn.setVisibility(View.GONE); } }); } }).start(); } },true); } }); } } public void initData() { linearLayList = (LinearLayout) findViewById(R.id.phone_study_preload_itemParent); linearLayList.removeAllViews(); groupMap.clear(); if (preloadList != null) { RelativeLayout relativelayout; for (Iterator<Preload> iterator = preloadList.iterator(); iterator .hasNext(); linearLayList.addView(relativelayout)) { Preload preload = (Preload) iterator.next(); preloadMap.put(preload.getLoadPlayId(), preload); // 获取单个视频加载条目 relativelayout = getView(preload); } } } public RelativeLayout getView(Preload preload) { RelativeLayout relativelayout = (RelativeLayout) layoutInflater .inflate(R.layout.phone_study_preload_item, null); PreloadContolGroup preloadcontolgroup = new PreloadContolGroup(); groupMap.put(preload.getLoadPlayId(), preloadcontolgroup); ((TextView) relativelayout .findViewById(R.id.phone_study_preload_item_title)) .setText(preload.getLoadPlayTitle()); ((TextView) relativelayout .findViewById(R.id.phone_study_preload_item_content)) .setText(preload.getLoadPlayTitleBelow()); preloadcontolgroup.setRootRelativeLayout(relativelayout); preloadcontolgroup.setBtnDelete((Button) relativelayout .findViewById(R.id.phone_study_preload_item_btnDelete)); preloadcontolgroup.setBtnControl((Button) relativelayout .findViewById(R.id.phone_study_preload_item_btnControl)); preloadcontolgroup.setBtnPlay((Button) relativelayout .findViewById(R.id.phone_study_preload_item_btnPlay)); preloadcontolgroup.setLblPercent((TextView) relativelayout .findViewById(R.id.phone_study_preload_item_lblPercent)); preloadcontolgroup.setLblContent((TextView) relativelayout .findViewById(R.id.phone_study_preload_item_content)); preloadcontolgroup.setLinearLayProcess((LinearLayout) relativelayout .findViewById(R.id.phone_study_preload_item_process)); preloadcontolgroup .setLinearLayProcessStatus((LinearLayout) relativelayout .findViewById(R.id.phone_study_preload_item_processStatus)); preloadcontolgroup.setPlayId(preload.getLoadPlayId()); preloadcontolgroup.setProgressBarDown((ProgressBar) relativelayout .findViewById(R.id.phone_study_preload_item_progressBarDown)); preloadcontolgroup.setBtnAddCourse((Button) relativelayout .findViewById(R.id.phone_study_preload_item_addcourse)); return relativelayout; } public void startDownNext() { Preload preload = null; for (int i = 0; i < preloadList.size(); i++) { if (preloadList.get(i).getLoadFinish() != 1 && preloadList.get(i).getLoading()==1 && preloadList.get(i).getLoadCurrentByte() != preloadList.get(i).getLoadSumByte()) { preload = preloadList.get(i); break; } } if (preload != null) { String playId = preload.getLoadPlayId(); PreloadContolGroup preloadcontolgroup = (PreloadContolGroup) groupMap .get(playId); preloadcontolgroup.getProgressBarDown().setMax(1000); if (preload.getLoadSumByte() != -1) preloadcontolgroup.getProgressBarDown() .setProgress( (int) ((1000L * (long) preload .getLoadCurrentByte()) / (long) preload .getLoadSumByte())); download(preload); } } /** * 下载此视频停止其他下载,并更新进度条 * * @param preload */ private void download(final Preload preload) { Runnable runnable = new Runnable() { public void run() { try { FileDownloader loader = new FileDownloader( ((CeiApplication) (PreloadActivity.this .getApplication())).dataHelper, preload); final PreloadContolGroup group = (PreloadContolGroup) groupMap .get(preload.getLoadPlayId()); loader.download(new DownloadProgressListener() { public void onDownloadSize() { Message message = Message.obtain(); message.arg1 = UPDATE_PROGRESS; message.getData().putSerializable("preload", preload); message.getData().putSerializable("group", group); handler.sendMessage(message); } }); } catch (Exception e) { e.printStackTrace(); } } }; DownloadThreadManager.clearThread(); ThreadPoolWrap.getThreadPool().shutdown(); ThreadPoolWrap.getThreadPool().executeTask(runnable); } /** * 同步离线列表 */ private void synDownloadClass() { dataHelper = ((CeiApplication) (PreloadActivity.this.getApplication())).dataHelper; new Thread(new Runnable() { @Override public void run() { File file = new File(MyTools.RESOURCE_PATH + MyTools.KJ_PARTPATH); StringBuilder fileNames = new StringBuilder(); for (int i = 0; i < file.list().length; i++) { String fileName = ""; if (file.list()[i].contains(".")) fileName = file.list()[i].substring(0, file.list()[i].indexOf(".")); else fileName = file.list()[i]; if (fileNames.indexOf(fileName) == -1) fileNames.append(fileName + ","); } List<Preload> preloads = dataHelper.getPreloadList(); for (int i = 0; i < preloads.size(); i++) { if(preloads.get(i).getLoadLocalPath() == null) continue; final String pathName = preloads .get(i) .getLoadLocalPath() .replace(FLASH_POSTFIX, "") .replace( MyTools.RESOURCE_PATH + MyTools.KJ_PARTPATH, ""); // 删掉重复的文件 if (fileNames.toString().contains(pathName) && new File(pathName + FLASH_POSTFIX + FLASH_UNPOSTFIX).exists()) { // && new File(pathName + FLASH_POSTFIX).exists()) { // 过滤掉本地正在下载,和已经导入的课件,则删除正在下载的课件,然后解压这个课件,并剔除需要验证的此课件,并更新数据库说明已经下载 new File(pathName + FLASH_POSTFIX + FLASH_UNPOSTFIX) .delete(); /* * try { ZipUtils.unzip(MyTools.RESOURCE_PATH + pathName * + FLASH_POSTFIX, MyTools.RESOURCE_PATH+ pathName); } * catch (IOException e) { e.printStackTrace(); } */ Preload preload = preloads.get(i); preload.setLoadFinish(1); preload.setLoading(0); preload.setLoadCurrentByte(preload.getLoadSumByte()); dataHelper.updatePreload(preload); } else if (fileNames.toString().contains(pathName) && new File(pathName + FLASH_POSTFIX).exists()) { // 如果已经下完,则剔除需要验证的字段 fileNames.delete(fileNames.indexOf(pathName), pathName.length() + 1); } } // 通过课件的资源根路径获取课件的key以及信息 String result = Service.queryPassKey(fileNames.toString()); List<Courseware> coursewares = new ArrayList<Courseware>(); XmlUtil.parseCoursewares(result, coursewares); StringBuilder classIds = new StringBuilder(); for (int i = 0; i < coursewares.size(); i++) { classIds.append(coursewares.get(i).getClassId() + ","); } if (classIds.length() > 0) classIds.deleteCharAt(classIds.length() - 1); // 验证课件合法性 result = Service.queryBuyClass(columnEntry.getUserId(), classIds.toString()); List<Courseware> legalCoursewares = new ArrayList<Courseware>(); XmlUtil.parseCoursewares(result, legalCoursewares); if(legalCoursewares.size() != coursewares.size()){ for(int i=0;i<coursewares.size();i++){ boolean isLegal = false; for(int j=0;j<legalCoursewares.size();j++){ if(legalCoursewares.get(j).getClassId().equals(coursewares.get(i).getClassId())){ isLegal = true; } } if(!isLegal){ coursewares.remove(i); i--; } } } for (int i = 0; i < coursewares.size(); i++) { final Preload preload = new Preload(); preload.setLoadPlayId(coursewares.get(i).getClassId()); if (dataHelper.hasPreload(preload.getLoadPlayId())) continue; preload.setLoadPlayTitle(coursewares.get(i).getName()); preload.setLoadPlayTitleBelow("讲师姓名 : " + coursewares.get(i).getTeacherName() + " 发布时间 : " + coursewares.get(i).getProTime()); preload.setClassLength(coursewares.get(i).getClassLength()); if(coursewares.get(i).getDownPath().contains("/")) preload.setLoadLocalPath(MyTools.RESOURCE_PATH + MyTools.KJ_PARTPATH + coursewares.get(i).getDownPath().substring(coursewares.get(i).getDownPath().lastIndexOf("/")+1)+ FLASH_POSTFIX); preload.setLoadFinish(1); preload.setLoading(0); preload.setLoadSumByte((int) new File(preload.getLoadLocalPath()).length()); preload.setLoadCurrentByte(preload.getLoadSumByte()); preload.setPassKey(coursewares.get(i).getKey()); dataHelper.savePreload(preload); } Message msg = handler.obtainMessage(); msg.arg1 = UPDATE_DOWNLIST; handler.sendMessage(msg); } }).start(); } public static void delFolder(String folderPath) { try { File file = new File(folderPath); folderPath += "_del"; file.renameTo(new File(folderPath)); delAllFile(folderPath); // 删除完里面所有内容 String filePath = folderPath; filePath = filePath.toString(); java.io.File myFilePath = new java.io.File(filePath); myFilePath.delete(); // 删除空文件夹 } catch (Exception e) { e.printStackTrace(); } } // 删除指定文件夹下所有文件 // param path 文件夹完整绝对路径 public static boolean delAllFile(String path) { boolean flag = false; File file = new File(path); if (!file.exists()) { return flag; } if (!file.isDirectory()) { return flag; } String[] tempList = file.list(); File temp = null; for (int i = 0; i < tempList.length; i++) { if (path.endsWith(File.separator)) { temp = new File(path + tempList[i]); } else { temp = new File(path + File.separator + tempList[i]); } if (temp.isFile()) { temp.delete(); } if (temp.isDirectory()) { delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件 delFolder(path + "/" + tempList[i]);// 再删除空文件夹 flag = true; } } return flag; } private void alertIsSurePop(OnClickListener clickListener,boolean isCheckLogin) { View popView = this.getLayoutInflater().inflate( R.layout.phone_study_issure, null); if(isCheckLogin &&!((CeiApplication)this.getApplication()).isNet()){ ((TextView)popView.findViewById(R.id.issure_title)).setText("请联网操作!"); clickListener = new OnClickListener() { @Override public void onClick(View v) { popWin.dismiss(); } }; }else if(isCheckLogin && columnEntry.getUserId() == null){ ((TextView)popView.findViewById(R.id.issure_title)).setText("请登录操作!"); } popView.findViewById(R.id.phone_study_issure_sure_btn) .setOnClickListener(clickListener); popView.findViewById(R.id.phone_study_issure_cancel_btn) .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(popWin != null) popWin.dismiss(); } }); popWin = new PopupWindow(popView, LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); popWin.setFocusable(true); popWin.showAtLocation(this.findViewById(R.id.full_view), Gravity.CENTER, 0, 0); } }