/** * @Author Benson * @Time 2013-11-24 */ package zjut.soft.finalwork.ui; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import zjut.soft.finalwork.R; import zjut.soft.finalwork.beans.LevelTest; import zjut.soft.finalwork.core.YCApplication; import zjut.soft.finalwork.util.Constant; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.ViewGroup.LayoutParams; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.ProgressBar; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; /** * �ȼ����Գɼ���ѯUI * * @author tsw * */ public class LevelGradeQueryUI extends Activity { private List<LevelTest> levelTest; private Handler mHandler; private TableLayout tl; private Button backBtn; private ProgressBar pb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.level_grade_query_ui); mHandler = new Handler(); tl = (TableLayout) findViewById(R.id.level_grade_query_tl); backBtn = (Button) findViewById(R.id.level_grade_query_btn); pb = (ProgressBar) findViewById(R.id.level_grade_query_ui_pb); backBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { LevelGradeQueryUI.this.finish(); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); } }); tl.setStretchAllColumns(true); showLevelResult(); } public void showLevelResult() { pb.setVisibility(View.VISIBLE); new Thread(new Runnable() { @Override public void run() { try { HttpGet get = new HttpGet( ((YCApplication) getApplication()) .get("selectedIp") + Constant.levelQuery); YCApplication app = (YCApplication) getApplication(); HttpResponse response = app.getClient().execute(get); HttpEntity entity = response.getEntity(); BufferedReader br = new BufferedReader( new InputStreamReader(entity.getContent(), Constant.ENCODING)); StringBuilder sb = new StringBuilder(); String temp = null; while ((temp = br.readLine()) != null) { sb.append(temp); } Document doc = Jsoup.parse(sb.toString()); final Elements tables = doc.select("#DJKCJ"); if (tables.size() > 0) { Element table = tables.get(0); Elements trs = table.select("tr"); levelTest = new ArrayList<LevelTest>(); if (trs.size() > 1) { for (int i = 1; i < trs.size(); i++) { LevelTest test = new LevelTest(); Element tr = trs.get(i); Elements tds = tr.select("td"); String name = tds.get(0).select("span").get(0) .html(); String grade = tds.get(1).select("span").get(0) .html(); String date = tds.get(2).select("span").get(0) .html(); test.setName(name); test.setGrade(grade); test.setDate(date); levelTest.add(test); } } } mHandler.post(new Runnable() { @Override public void run() { fillTableWithLevelTest(); } }); } catch (Exception e) { e.printStackTrace(); } } }).start(); } private void fillTableWithLevelTest() { for (LevelTest test : levelTest) { // ���� TableRow tr = new TableRow(this); // ���� // ���� TextView tv1 = new TextView(this); tv1.setBackgroundResource(R.drawable.cell_shape2); tv1.setText(test.getName()); // �ɼ� TextView tv2 = new TextView(this); tv2.setBackgroundResource(R.drawable.cell_shape2); tv2.setText(test.getGrade()); // ��ʱ�� TextView tv3 = new TextView(this); tv3.setBackgroundResource(R.drawable.cell_shape2); tv3.setText(test.getDate()); tr.addView(tv1); tr.addView(tv2); tr.addView(tv3); tl.addView(tr, new TableLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); } pb.setVisibility(View.GONE); } }