package com.nsmss.scuol.exam;
import java.util.List;
import java.util.Map;
import com.nsmss.scuol.R;
import com.nsmss.scuol.bean.GlobalInfo;
import com.nsmss.scuol.bean.UserData;
import com.nsmss.scuol.common.NetHelper;
import com.nsmss.scuol.dao.GlobalInfoDao;
import com.nsmss.scuol.dao.UserDataDao;
import com.nsmss.scuol.main.MainActivity;
import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
public class ExamActivity extends Activity
{
/**
* 静态成员变量
*/
private static Context context;
/**
* UI相关成员变量
*/
ProgressDialog progressDialog;
/**
* View相关成员变量
*/
View backView;
View refreshView;
private ListView listView;
private SimpleAdapter simpleAdapter;
/**
* Dao成员变量
*/
private GlobalInfoDao gDao;
private UserDataDao uDao;
/**
* 数据模型变量
*/
GlobalInfo gInfo;
private UserData uData;
/**
* 网络模型对象
*/
NetHelper netHelper;
/**
* 数据存储变量
*/
List<Map<String, String>> data;
/**
* 状态变量
*/
/**
* 临时变量
*/
int uid;
private String errCodeStr;
/**
* Activity回调函数
*/
@Override
protected void onCreate(Bundle savedInstanceState)
{
// 继承父类方法,绑定View
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exam);
// 初始化context
context = getApplicationContext();
//初始化UI相关成员变量
// 初始化网络模型对象
netHelper = new NetHelper();
// 初始化Dao成员变量
gDao = new GlobalInfoDao(context);
uDao = new UserDataDao(context);
// 初始化数据模型变量
gInfo = gDao.query();
uid = gInfo.getActiveUserUid();
uData = uDao.query(uid);
// 初始化View成员变量
initView();
initListener();
// 初始化状态变量
// 初始化临时变量
// 自定义函数
getExamInfo();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
jumpToMain();
return true;
}
return super.onKeyDown(keyCode, event);
}
/**
* 线程对象
*/
private Runnable connection = new Runnable()
{
@Override
public void run()
{
data = netHelper.examInfo(uData);
if (data != null && !data.isEmpty())
{ // 如果刷新成功,更新列表
progressDialog.dismiss();
runOnUiThread(succRunnable);
}
else if (data != null && data.isEmpty()) {
progressDialog.dismiss();
runOnUiThread(retRunnable);
}
else
{ // 刷新失败,显示消息
progressDialog.dismiss();
errCodeStr = "104";
runOnUiThread(errRunnable);
}
}
};
/**
* 自定义成员对象
*/
private Runnable succRunnable = new Runnable()
{
@Override
public void run()
{
updateToListview();
}
};
private Runnable retRunnable = new Runnable()
{
@Override
public void run()
{
Toast.makeText(ExamActivity.this, "暂时没有考试信息!", Toast.LENGTH_SHORT).show();
}
};
private Runnable errRunnable = new Runnable()
{
@Override
public void run()
{
Toast.makeText(ExamActivity.this, "连接错误!错误代码:"+errCodeStr, Toast.LENGTH_SHORT).show();
}
};
/**
* 自定义方法
*/
private void getExamInfo()
{
// TODO Auto-generated method stub
progressDialog = ProgressDialog.show(ExamActivity.this, null, getResources().getString(R.string.loading_tip));// 显示ProgressBar
new Thread(connection).start(); // 开启连接线程
}
private void updateToListview()
{
// TODO Auto-generated method stub
simpleAdapter = new SimpleAdapter(context, data, R.layout.list_exam, new String[]
{ "subject", "time", "place" }, new int[]
{ R.id.list_subject, R.id.list_time, R.id.list_place });
listView.setAdapter(simpleAdapter);
listView.setDivider(null);
}
private void initListener()
{
// TODO Auto-generated method stub
backView.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
jumpToMain();
}
});
refreshView.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
refreshList();
}
});
}
private void initView()
{
// TODO Auto-generated method stub
backView = findViewById(R.id.Btn_Change_Password_Back);
refreshView = findViewById(R.id.Btn_Change_Password_Refresh);
listView = (ListView) findViewById(R.id.listView_Exam);
}
private void jumpToMain()
{
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(ExamActivity.this, MainActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_left_in, R.anim.slide_right_out);
finish();
}
private void refreshList()
{
progressDialog.setIndeterminate(true);
progressDialog.setMessage(getResources().getString(R.string.loading_tip));
progressDialog.setCancelable(true);
progressDialog.show();
new Thread(connection).start(); // 开启连接线程
}
}