您的位置:首页 > 移动开发 > Android开发

Android仿团购

2015-09-06 11:01 169 查看
本项目主要做的练习界面的布局,排版以及界面的跳转功能,由于是才学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不久时做的,故界面上的部分功能没有实现其相应的功能,将在之后的学习中不断的对界面功能进行完善。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: