package com.pps.sharpturn.activity; import java.util.List; import java.util.Timer; import java.util.TimerTask; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.pps.sharpturn.BaseActivity; import com.pps.sharpturn.R; import com.pps.sharpturn.db.DBManager; import com.pps.sharpturn.model.SharpModel; import com.pps.sharpturn.utils.FileUtils; public class DetailsRandomActivity extends BaseActivity { private Button details_random_head_leftbtn; private TextView details_random_head_textview; private ImageView details_random_prev; private ImageView details_random_next; private TextView details_random_tv_name; private TextView details_random_tv_answer; private Button detalis_random_btn_book; private Button detalis_random_btn_answer; private List<SharpModel> sharpModels; private SharpModel model; private int index = 0; private Intent mIntent; private DBManager mDBManager; private Timer mTimer; private TimerTask mTimerTask; private int mCurrent = 15; private static final int SUCCESS = 1; private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case SUCCESS: if (mCurrent != 0) { details_random_tv_answer.setText("思考中:" + mCurrent); } else { details_random_tv_answer.setText("点击答案显示"); if (mTimerTask != null) { mTimerTask.cancel(); } } break; default: break; } super.handleMessage(msg); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.details_random); initView(); initValidata(); bindData(); initListener(); } /** * 初始化数据 */ private void initView() { details_random_head_leftbtn = (Button) this .findViewById(R.id.details_random_head_leftbtn); details_random_head_textview = (TextView) this .findViewById(R.id.details_random_head_textview); details_random_prev = (ImageView) this .findViewById(R.id.details_random_prev); details_random_next = (ImageView) this .findViewById(R.id.details_random_next); details_random_tv_name = (TextView) this .findViewById(R.id.details_random_tv_name); details_random_tv_answer = (TextView) this .findViewById(R.id.details_random_tv_answer); detalis_random_btn_book = (Button) this .findViewById(R.id.detalis_random_btn_book); detalis_random_btn_answer = (Button) this .findViewById(R.id.detalis_random_btn_answer); } /** * 初始化变量 */ private void initValidata() { if (LogoActivity.mLists == null) { sharpModels = FileUtils.getSharpModels(DetailsRandomActivity.this); } else { sharpModels = LogoActivity.mLists; } index = (int) (Math.random() * 3000) + 1; model = sharpModels.get(index); mIntent = new Intent(); mDBManager = new DBManager(DetailsRandomActivity.this); details_random_tv_answer.setText("思考中:" + mCurrent); mTimer = new Timer(); mTimerTask = new TimerTask() { @Override public void run() { sendMessageUpdate(); mCurrent--; } }; mTimer.schedule(mTimerTask, 1000, 1000); } /** * 绑定数据 */ private void bindData() { details_random_head_textview.setText("第" + index + "道题目"); details_random_tv_name.setText(model.getName()); } /** * 初始化监听器 */ private void initListener() { details_random_head_leftbtn .setOnClickListener(new MySetOnClickListener()); details_random_prev.setOnClickListener(new MySetOnClickListener()); details_random_next.setOnClickListener(new MySetOnClickListener()); detalis_random_btn_book.setOnClickListener(new MySetOnClickListener()); detalis_random_btn_answer .setOnClickListener(new MySetOnClickListener()); } private void sendMessageUpdate() { Message msg = mHandler.obtainMessage(); msg.what = SUCCESS; mHandler.sendMessage(msg); } class MySetOnClickListener implements OnClickListener { @Override public void onClick(View v) { switch (v.getId()) { case R.id.details_random_head_leftbtn: mIntent.setClass(DetailsRandomActivity.this, MainActivity.class); DetailsRandomActivity.this.startActivity(mIntent); DetailsRandomActivity.this.finish(); break; case R.id.details_random_prev: index = (int) (Math.random() * 3000) + 1; model = sharpModels.get(index); if (mTimerTask != null) { mTimerTask.cancel(); } mCurrent = 15; mTimerTask = new TimerTask() { @Override public void run() { sendMessageUpdate(); mCurrent--; } }; mTimer.schedule(mTimerTask, 1000, 1000); details_random_head_textview.setText("第" + index + "道题目"); details_random_tv_name.setText(model.getName()); details_random_tv_answer.setText("思考中:" + mCurrent); break; case R.id.details_random_next: index = (int) (Math.random() * 3000) + 1; model = sharpModels.get(index); if (mTimerTask != null) { mTimerTask.cancel(); } mCurrent = 15; mTimerTask = new TimerTask() { @Override public void run() { sendMessageUpdate(); mCurrent--; } }; mTimer.schedule(mTimerTask, 1000, 1000); details_random_head_textview.setText("第" + index + "道题目"); details_random_tv_name.setText(model.getName()); details_random_tv_answer.setText("思考中:" + mCurrent); break; case R.id.detalis_random_btn_book: boolean result = mDBManager.insertSharp(model); if (result) { Toast.makeText(DetailsRandomActivity.this, "收藏成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(DetailsRandomActivity.this, "收藏失败!", Toast.LENGTH_SHORT).show(); } break; case R.id.detalis_random_btn_answer: details_random_tv_answer.setText(model.getAnswer()); if (mTimerTask != null) { mTimerTask.cancel(); } break; } } } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { mIntent.setClass(DetailsRandomActivity.this, MainActivity.class); DetailsRandomActivity.this.startActivity(mIntent); DetailsRandomActivity.this.finish(); } return super.onKeyDown(keyCode, event); } }