【该项目实训是Android基础知识的一个综合练习,特别提示:项目中会用到一些图片素材,都是随意整理的,稍后会上传一个资源,包含该事项项目的基本功能,也含有图片素材】
实现登录功能。匿名用户虽然可以查看各种食物、店铺等信息,但是涉及与用户相关操作时都需要验证登录信息。登录使用一个对话框完成。
具体登录对话框的弹出是当用户点击 “用户信息” 菜单时发生的,如果没有登录,会弹出登录框,否则显示用户信息界面:
1、登录对话框类是 LoginDialog,代码如下
/**
* 自定义 登录对话框
* @author Administrator
*/
public class LoginDialog {
/**
* 构造方法
* @param context 所属界面的Activity
*/
public LoginDialog(final Activity context){
AlertDialog.Builder builder=new Builder(context);
builder.setTitle("用户登录");
builder.setIcon(R.drawable.logo_s);
View v =LayoutInflater.from(context).inflate(R.layout.dialog_login, null);
final EditText et1 =(EditText) v.findViewById(R.id.dialog_login_name);
final EditText et2 =(EditText) v.findViewById(R.id.dialog_login_pwd);
builder.setView(v);
builder.setPositiveButton("登录账户",new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
String n =et1.getText().toString();
String p=et2.getText().toString();
if(n==null||p==null){
Toast.makeText(context, "请输入登录信息", Toast.LENGTH_SHORT).show();
return;
}
EatDbHelper dbh=new EatDbHelper(context, "fooddb.db3", null, 1);
UserInfo uinfo =new UserInfoDao().login(dbh, n,p);
if(uinfo==null){
Toast.makeText(context, "账户信息错误!", Toast.LENGTH_SHORT).show();
}else{
EatApp app =(EatApp) context.getApplication();
app.userInfo=uinfo;
Log.i("Msg", "用户登录成功:"+uinfo.toString());
Toast.makeText(context, "登录成功,请继续操作!", Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("注册账户", new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
//注册新账户
}
});
builder.show();
}
}
3、如果是已经登录过了,点击个人信息菜单时,会打开信息界面
UserinfoActivity 。
public class UserinfoActivity extends Activity {
ListView accountLv,infoLv;
List
5、项目中用的几个 背景框代码如下:
facebg。xml,用于显示用户头像后的框子。
编辑框背景
列表项所用,灰色边框
图标背景框
购买按钮样式 【这在后面说 加入购物车功能时 用到】