團隊作業-第四周-物件導向程式設計

洞拐洞拐發表於2015-06-14

移動課堂點名APP

  一、程式原始碼涉及多個類,比較繁雜,就不貼到這兒了,在這附上原始碼地址:https://github.com/WreckBear/final

  二、該程式涉及以下幾個類,對以下的類進行簡要說明:  

      CallNameActivity:顯示全域性點名的介面。
      CallNameAll:負責點名選擇介面。
      CallNameRdmActivity:負責隨機點名介面。
      CountActivity:負責統計介面。
      ImportActivity:負責匯入檔案的介面。
      MainActivity:主介面。
      MoreActivity:更多介面。
      MyDBOpenHelper:關於和資料庫互動的類。
      MyInfoActivity:我的資訊頁。
      PersonDao:關於資料庫請求類。
      SplashActivity:進入Splash介面。

  三、部分程式碼

      貼出統計頁面的原始碼,簡要說明下思路:

        本類包含4個方法:oncreate():初始化介面的各個變數。

                  onstart():檢測有無表kecheng1存在,如存在則呼叫count方法;否則就顯示沒有課程。

                  tableExist():檢測資料表是否存在。

                  count():將所有同學的資料從資料庫中取出來,放到listview中顯示。

      下面是具體程式碼,附註釋:

 3 import java.awt.Cursor;
 4 import java.util.ArrayList;
 5 import java.util.HashMap;
 6 import java.util.List;
 7 
 8  public class CountActivity extends Activity {
 9      ListView listView;
10      TextView text;
11      LinearLayout linearLayout;
12 
13     @Override
14      protected void onCreate(Bundle savedInstanceState) {
15          super.onCreate(savedInstanceState);
16          setContentView(R.layout.count_layout);
17  
18          //初始化介面元件
19          text = (TextView) findViewById(R.id.toast);
20          linearLayout = (LinearLayout) findViewById(R.id.instudct);
21          listView = (ListView) findViewById(R.id.count);
22      }
23  
24      @Override
25      protected void onStart() {
26         super.onStart();
27         //如果表存在,就呼叫count方法
28          if (tabIsExist("kecheng1")) {
29              linearLayout.setVisibility(View.VISIBLE);
30             listView.setVisibility(View.VISIBLE);
31              text.setVisibility(View.GONE);
32              count();
33         } else {
34              linearLayout.setVisibility(View.GONE);
35              listView.setVisibility(View.GONE);
36             text.setVisibility(View.VISIBLE);
37          }
38     }
39  
40      public boolean tabIsExist(String tabName) {
41          SQLiteDatabase dbInfo = new MyDBOpenHelper(this).getReadableDatabase();
42          boolean result = false;
43          if (tabName == null) {
44             return false;
45          }
46          Cursor cursor = null;
47          try {
48              String sql = "select count(*) as c from sqlite_master where type ='table' and name ='"
49                      + tabName.trim() + "' ";
50              cursor = dbInfo.rawQuery(sql, null);
51              if (cursor.moveToNext()) {
52                  int count = cursor.getInt(0);
53                  if (count > 0) {
54                      result = true;
55                  }
56              }
57          } catch (Exception e) {
58          } finally {
59              dbInfo.close();
60          }
61          return result;
62      }
63  
64      private void count() {
65          // 存放資料用
66          List<HashMap<String, String>> all = new ArrayList<HashMap<String, String>>();
67          PersonDao per = new PersonDao(this);
68          List<String[]> tmpList = per.getAllPerson();
69          //將資料拆箱裝到hashmap裡
70          for (String[] tmpAll : tmpList) {
71              HashMap hash = new HashMap<String, String>();
72              hash.put("學號", tmpAll[0]);
73              hash.put("班級", tmpAll[3]);
74             hash.put("姓名", tmpAll[1]);
75              hash.put("缺勤", tmpAll[4]);
76              all.add(hash);
77          }
78          //設定listViw介面卡
79          SimpleAdapter simple = new SimpleAdapter(this, all, R.layout.liststyle,
80                  new String[] { "學號", "班級", "姓名", "缺勤" }, new int[] { R.id.t1,
81                          R.id.t2, R.id.t3, R.id.t4 });
82          listView.setAdapter(simple);
83  
84      }
85  }

 

相關文章