package com.nsmss.scuol.grade;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.nsmss.scuol.R;
import com.nsmss.scuol.bean.GlobalInfo;
import com.nsmss.scuol.bean.GradeData;
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 com.nsmss.scuol.personal.PersonalActivity;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
/**
* @version 1
* @author LMD
* 示例类
*/
public class GradeActivity extends Activity {
/**
* 静态成员变量
*/
private static Context context;
/**
* UI相关成员变量
*/
private View backView;
private View refreshView;
private TextView avarageTextView;
private TextView GPATextView;
/**
* View相关成员变量
*/
private ProgressDialog progressDialog;
ListView gradeListView;
private SimpleAdapter sAdapter;
/**
* Dao成员变量
*/
private GlobalInfoDao gDao;
private UserDataDao uDao;
/**
* 数据模型变量
*/
private GlobalInfo gInfo;
private UserData uData;
/**
* 数据存储变量
*/
List<Map<String, String>> gradeList;
/**
* 状态变量
*/
/**
* 临时变量
*/
int uid;
float AvaGpa[];
/**
* Activity回调函数
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// 继承父类方法,绑定View
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grade);
// 初始化context
context = getApplicationContext();
// 初始化View成员变量
// 初始化Dao成员变量
gDao = new GlobalInfoDao(context);
uDao = new UserDataDao(context);
// 初始化数据模型变量
gInfo = gDao.query();
uid = gInfo.getActiveUserUid();
uData = uDao.query(uid);
// 初始化状态变量
// 初始化临时变量
// 自定义函数
initView();
initListener();
}
@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 connRunnable = new Runnable() {
@Override
public void run() {
NetHelper nHelper = new NetHelper();
gradeList = nHelper.getGrades(uData);
AvaGpa = nHelper.getAvaGpa(gradeList);
// 如果连接成功,返回了更新数据
if (gradeList != null) {
// 判断状态对话框是否显示
if (progressDialog.isShowing()) {
progressDialog.dismiss();
runOnUiThread(succRunnable);
}
}
// 连接错误
else {
// 判断状态对话框是否显示
if (progressDialog.isShowing()) {
progressDialog.dismiss();
runOnUiThread(errRunnable);
}
}
}
};
// 连接成功线程
private Runnable succRunnable = new Runnable() {
@Override
public void run() {
updateGData();
}
};
// 连接错误线程
private Runnable errRunnable = new Runnable() {
@Override
public void run() {
Toast.makeText(GradeActivity.this, "连接错误!请检查网络连接!", Toast.LENGTH_SHORT).show();
}
};
/**
* 自定义成员对象
*/
/**
* 自定义方法
*/
private void initView() {
backView = findViewById(R.id.Btn_Grade_Back);
refreshView = findViewById(R.id.Btn_Grade_Refresh);
gradeListView = (ListView) findViewById(R.id.List_Grade);
avarageTextView = (TextView) this.findViewById(R.id.Text_Grade_Score);
GPATextView = (TextView) this.findViewById(R.id.Text_Grade_GPA);
}
private void initListener() {
backView.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
jumpToMain();
}
});
refreshView.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
refreshGData();
}
});
}
private void refreshGData() {
// 显示状态对话框
progressDialog = new ProgressDialog(this);
progressDialog.setIndeterminate(true);
progressDialog.setMessage(getResources().getString(R.string.loading_tip));
progressDialog.setCancelable(true);
progressDialog.show();
// 开启连接线程
new Thread(connRunnable).start();
}
private void updateGData() {
DecimalFormat dFormat = new DecimalFormat("##0.00");
avarageTextView.setText(dFormat.format(AvaGpa[0]));
GPATextView.setText(dFormat.format(AvaGpa[1]));
sAdapter = new SimpleAdapter(this, gradeList, R.layout.list_item_grade,
new String[] { "attr", "subject", "credit", "grade", "time"},
new int[] { R.id.list_grade_attr, R.id.list_grade_subject, R.id.list_grade_credit,
R.id.list_grade_grade, R.id.list_grade_time});
gradeListView.setAdapter(sAdapter);
gradeListView.setDivider(null);
}
private void jumpToMain() {
Intent intent=new Intent();
intent.setClass(GradeActivity.this, MainActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_left_in, R.anim.slide_right_out);
finish();
}
}