android小项目打地鼠(五)

 

  打地鼠1.0版本已经完成,算一期工程完成了吧。0.9版本实现了数据的存储,1.0版本做了不少测试,修复了一些bug,优化了一下代码。

 

 

    

    

 

    

 

    

 

 代码多,贴出来太占地方了,就把和0.9版本相关的数据库方面的文件贴一下。

DBHelper.java

package com.fsy.hitmouse;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

/**
 * 管理记录数据库
 * @author Fsy
 *
 */
public class DBHelper extends SQLiteOpenHelper{

	private static int VERSION = 1;
	public DBHelper(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
	}

	public DBHelper(Context context, String name, int version) {
		this(context, name,null, version);
	}
	
	public DBHelper(Context context, String name) {
		this(context, name,VERSION);
	}
	
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table winner(name varchar(20),score int)");
		Manage.DB_flag = true;
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		
	}

}


InputActivity.java

package com.fsy.hitmouse;

import android.app.Activity;
import android.content.ContentValues;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
/**
 * 输入玩家信息的Activity
 * @author Fsy
 *
 */
public class InputActivity extends Activity{
	Button b;
	EditText editText;
	String name;
	boolean flag;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState); 
		setContentView(R.layout.input);
		setTitle(" 给力啊    果然犀利~ ");
		editText = (EditText)findViewById(R.id.winner_name);
		b = (Button)findViewById(R.id.button_yes);
		b.setOnClickListener(new OnClickListener() {		
			public void onClick(View v) {
				flag = false;
				if (!(name=editText.getText().toString()).equals("")) {
					ContentValues values = new ContentValues();
					values.put("name", name);
					values.put("score", Manage.score);
					Manage.activitymain.dbwrite.insert("winner", null, values);	
					flag = true;
				}
				if(flag){
					finish();
				}
			}
		});
	}

}


ListScoreActivity.java

package com.fsy.hitmouse;


import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
/**
 * 列出排名的Activity
 * @author Fsy
 *
 */
public class ListScoreActivity extends Activity{
	/**
	 * 排名,共5个
	 */
	TextView t[];
	Button b;
	String name;
	String score;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setTitle("打地鼠英雄榜");
		setContentView(R.layout.list_score);
		
		t = new TextView[5];
		t[0]= (TextView)findViewById(R.id.text1);
		t[1]= (TextView)findViewById(R.id.text2);
		t[2]= (TextView)findViewById(R.id.text3);
		t[3]= (TextView)findViewById(R.id.text4);
		t[4]= (TextView)findViewById(R.id.text5);
		
		Cursor cursor = Manage.activitymain.dbread.query("winner", null, null, null, null, null, "score desc");
		int temp=0;
		while(cursor.moveToNext()){
			name = cursor.getString(cursor.getColumnIndex("name"));
			score = cursor.getString(cursor.getColumnIndex("score"));
			if(temp>4) break;
			t[temp].setText(name+"    "+score);
			temp++;			
		}
		
		b= (Button)findViewById(R.id.button_list);
		b.setOnClickListener(new OnClickListener() {	
			@Override
			public void onClick(View v) {
				finish();
			}
		});
	}

}


 ScoreActivity.java

package com.fsy.hitmouse;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
/**
 * 未破纪录的玩家分数Activity
 * @author Fsy
 *
 */
public class ScoreActivity extends Activity{
	TextView text;
	Button b;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setTitle("还差一点,没破记录");
		setContentView(R.layout.score);
		text = (TextView)findViewById(R.id.text_show_score);
		text.setText("你的分数为: "+Manage.score);
		b= (Button)findViewById(R.id.button_show_score);
		b.setOnClickListener(new OnClickListener() {		
			@Override
			public void onClick(View v) {
				finish();
			}
		});
	}

}


TimeHandler.java

package com.fsy.hitmouse;

import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;

/**
 * 管理进度条更新的Handler
 * @author Fsy
 *
 */
public class TimeHandler extends Handler{
	Intent t;
	public TimeHandler(Looper looper) {
		super(looper);
	}

	@Override
	public void handleMessage(Message msg) {
		Manage.activitymain.progressbar.setProgress(Manage.passed_time);
		//处理第一次创建数据库时表为空的情况,应该还有更好的解决方法?
		if(Manage.DB_flag){
			ContentValues values = new ContentValues();
			values.put("name", "fsy");
			values.put("score", 0);
			Manage.activitymain.dbwrite.insert("winner", null, values);
			Manage.DB_flag = false;
		}
		if (Manage.passed_time>=100) {
			Manage.make_mouse = false;
			Cursor cursor = Manage.activitymain.dbread.query("winner", null, null, null, null, null, "score desc");
			int counter=0;
			while(cursor.moveToNext()){
				if(counter == 5){
					break;
				}
				if (Manage.score >cursor.getInt(cursor.getColumnIndex("score"))) {
					t = new Intent();
					t.setClass(Manage.activitymain, InputActivity.class);
					Manage.activitymain.startActivity(t);
					break;
				}				
				counter++;
			}
			if(counter == 5){
				t = new Intent();
				t.setClass(Manage.activitymain, ScoreActivity.class);
				Manage.activitymain.startActivity(t);
			}
		}
	}
	
}


 

 

   

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值