Android仿团购

      本项目主要做的练习界面的布局,排版以及界面的跳转功能,由于是才学Android一个月所做的练习项目,故没有对于网络的链接还不是很会,故界面中的数据全是设置为固定的,在后期将会对界面美化及功能进行相应的完善。若要看代码可以到http://download.csdn.net/detail/q394895302/9104343去下载(编码方式UTF-8),若有错可以指出下,共同学习。

     该项目由于没有对资源进行有效的查找,故直接用的是美团的资源文件进行包装和界面的显示,其效果如下图所示:


    此项目主要母的是:熟悉Android 常用UI控件及布局的使用、界面的排版;自定义ProgressBar实现人物的动态加载;此练习中使用的TabActivity切换界面,由于TabActivity已经被废弃掉,故后期用RadioButton和RadioGroup组合来代替TabActivity实现界面的切换功能;还用到了引导界面ViewPager,Activity之间的跳转,自定义适配器等功能的使用,弹窗控件PopupWindow的使用,列表ListView的使用。

    在注册和登录的时候使用到了数据库SQLite的相关知识对注册和登录信息与数据库中的数据进行比较,注册时若用户名已存在将注册不了;登录时输入的信息不正确将不能进行登录。以及返回键的重新定义,使其按2次返回键退出程序。

    经过此项目的练习,使得对Activity的布局,UI控件的使用,界面的跳转,数据库的相关操作。其部分代码如下:

    下面为注册部分代码:

<span style="font-size:18px;">DataHelper dbHelper = DataHelper.getInstanceDatabaseHelper(this);
		db = dbHelper.getReadableDatabase();

		// 注册确定按钮事件处理
		mConfirmbtn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {

				if (!mUserName.getText().toString().equals("")
						&& !mPassword1.getText().toString().equals("")) {
					addAccount();

				} else {
					Toast.makeText(ReisterActivity.this, "注册信息不能为空!",
							Toast.LENGTH_SHORT).show();
				}
			}
		});

		// 检测用户名是否存在
		mTestNameBtn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Cursor cursor = db.rawQuery(
						"select * from student where username = ?",
						new String[] { mUserName.getText().toString()});
				boolean flag = false;
				if (cursor.moveToFirst()) {
					flag = true;
					Toast.makeText(ReisterActivity.this, "您输入的用户名已存在,请重新输入!",
							Toast.LENGTH_SHORT).show();
					mUserName.setText("");
					return;
				}
				if (!flag) {
					Toast.makeText(ReisterActivity.this, "此用户名可以使用!",
							Toast.LENGTH_SHORT).show();

				}

			}
		});

		// 返回登录窗口
		mLinearLayout.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent();
				intent.setClass(ReisterActivity.this, LoginActivity.class);
				startActivity(intent);
				finish();
			}
		});
	}

	// 将账号信息添加到数据库
	public void addAccount() {

		DataHelper dbHelper = DataHelper.getInstanceDatabaseHelper(this);
		db = dbHelper.getReadableDatabase();
		ContentValues contentValues = new ContentValues();

		if (mPassword1.getText().toString()
				.equals(mPassword2.getText().toString())) {
			contentValues.put("username", mUserName.getText().toString());
			contentValues.put("password", mPassword1.getText().toString());
			db.insert("student", null, contentValues);
			Toast.makeText(ReisterActivity.this, "注册成功!", Toast.LENGTH_SHORT)
					.show();

			Intent intent = new Intent();
			intent.setClass(ReisterActivity.this, LoginActivity.class);
			startActivity(intent);
			finish();

		} else {
			Toast.makeText(ReisterActivity.this, "两次密码不一致,请重新输入!",
					Toast.LENGTH_SHORT).show();
			mPassword1.setText("");
			mPassword2.setText("");
		}

	}</span>

   下面为登录判断部分代码:

<span style="font-size:18px;">	// 登录按钮点击事件处理
	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.login_btn:
			String userName = mUserNameEdit.getText().toString();
			String passWord = mPassWordEdit.getText().toString();

			if (userName.equals("") || passWord.equals("")) {
				Toast.makeText(this, "用户名、密码不为空!", Toast.LENGTH_SHORT).show();
				return;
			}

			DataHelper dbHelper = DataHelper.getInstanceDatabaseHelper(this);
			db = dbHelper.getReadableDatabase();// 如果数据库存在就打开此数据库,否则就创建数据库

			boolean sucessFlag = false;
			Cursor cursor = db.query("student", null, null, null, null, null,
					null, null);
			while (cursor.moveToNext()) {

				String name = cursor.getString(cursor
						.getColumnIndex("username"));
				String word = cursor.getString(cursor
						.getColumnIndex("password"));

				if (userName.equals(name) && passWord.equals(word)) {

					sucessFlag = true;
					if (mAutomaticLogin.isChecked()) {
						mPreference
								.edit()
								.putBoolean("isrmb", true)
								.putBoolean("islgs", true)
								.putString("username",
										mUserNameEdit.getText().toString())
								.putString("password",
										mPassWordEdit.getText().toString())
								.commit();
					} else {
						if (mRememberPassWord.isChecked()) {
							mPreference
									.edit()
									.putBoolean("isrmb", true)
									.putBoolean("islgs", false)
									.putString("username",
											mUserNameEdit.getText().toString())
									.putString("password",
											mPassWordEdit.getText().toString())
									.commit();
						} else {
							mPreference
									.edit()
									.putBoolean("isrmb", false)
									.putBoolean("islgs", false)
									.putString("username",
											mUserNameEdit.getText().toString())
									.putString("password",
											mPassWordEdit.getText().toString())
									.commit();
						}
					}
					Intent intent = new Intent(LoginActivity.this,
							LoginLoadingActivity.class);
					startActivity(intent);
					finish();

				}

			}

			if (!sucessFlag) {
				Toast.makeText(this, "用户名或密码错误,请重新登录!", Toast.LENGTH_SHORT)
						.show();
				mUserNameEdit.setText("");
				mPassWordEdit.setText("");
			}
		}</span>

     由于该练习是刚学习Android不久时做的,故界面上的部分功能没有实现其相应的功能,将在之后的学习中不断的对界面功能进行完善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值