实例10:带选择头像的用户注册页面

1、布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TableLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="用户名:" />

                <EditText
                    android:id="@+id/username"
                    android:layout_width="180px"
                    android:layout_height="50px" />
            </TableRow>

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="密    码:" />

                <EditText
                    android:id="@+id/pwd"
                    android:layout_width="180px"
                    android:layout_height="50px" />
            </TableRow>

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="确认密码:" />

                <EditText
                    android:id="@+id/repwd"
                    android:layout_width="180px"
                    android:layout_height="50px" />
            </TableRow>

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="E-mail地址" />

                <EditText
                    android:id="@+id/email"
                    android:layout_width="180px"
                    android:layout_height="50px" />
            </TableRow>
        </TableLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        <ImageView 
            android:id="@+id/imgae"
            android:layout_width="200px"
            android:layout_height="200px"/>
        <Button 
            android:id="@+id/select"
            android:text="选择头像"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"/>
    </LinearLayout>

</LinearLayout>

2、在onCreate()方法中,获取选择投降按钮

 Button button = (Button)findViewById(R.id.select);//获取"选择投降"按钮
        button.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(MainActivity.this,HeadActivity.class);
				startActivityForResult(intent, 0x11);//启动指定的Activity
			}
		});

3、head,xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
	
    <GridView 
        android:id="@+id/gridView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="10px"
        android:horizontalSpacing="3px"
        android:verticalSpacing="3px"
        android:numColumns="4"></GridView>

</LinearLayout>

4、HeadActivity.java类

public class HeadActivity extends Activity {
	public int[] imageId = new int[]{R.drawable.head01,R.drawable.head02,R.drawable.head03,R.drawable.head04,R.drawable.head05,
			R.drawable.head06,R.drawable.head07,R.drawable.head08,R.drawable.head09};//定义并初始化保存头像id的数组
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.head);//设置该Activity使用的布局
		GridView gridView = (GridView)findViewById(R.id.gridView1);//获取GridView组件
		BaseAdapter adapter = new BaseAdapter() {
			@Override
			public View getView(int position, View converView, ViewGroup parent) {
				ImageView imageView;//声明ImageView的对象
				if(converView==null){
					imageView = new ImageView(HeadActivity.this);//实例化ImageView的对象
					//设置图像的宽度和高度
					imageView.setAdjustViewBounds(true);
					imageView.setMaxWidth(158);
					imageView.setMaxHeight(150);
					imageView.setPadding(5, 5, 5, 5);//设置ImageView的内边距
				}else{
					imageView = (ImageView)converView;
				}
				imageView.setImageResource(imageId[position]);//为ImageView设置要显示的图片
				return imageView;//返回ImageView
			}
			/**
			 * 	获得当前选项的id
			 */
			@Override
			public long getItemId(int position) {
				return position;
			}
			/**
			 * 获得当前选项
			 */
			@Override
			public Object getItem(int position) {
				return position;
			}
			/**
			 * 获得数量
			 * @return
			 */
			@Override
			public int getCount() {
				return imageId.length;
			}
		};
		gridView.setAdapter(adapter);//将适配器与GridView关联
		gridView.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> parent, View view, int position,
					long id) {
				Intent intent = getIntent();//获取Intent对象 
				Bundle bundle = new Bundle();//实例化传递的数据包
				bundle.putInt("iamgeId", imageId[position]);//显示选中的图片
				intent.putExtras(bundle);//将数据包保存在intent中
				setResult(0x11, intent);//设置返回的结果码,并返回调用该Acitivity的Activity
				finish();//关闭当前的Activity
			}
		});
		
	}
}

5、MainActivity中重写onActivityResult()方法

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    	super.onActivityResult(requestCode, resultCode, data);
    	if(requestCode==0x11&&resultCode==0x11){//判断是否为待处理的结果
    		Bundle bundle = data.getExtras();//获取传递的数据包
    		int imageId = bundle.getInt("imageId");//获取选择的头像id
    		//获取布局文件中添加的ImageView组件 
    		ImageView iv = (ImageView)findViewById(R.id.imgae);
    		iv.setImageResource(imageId);//显示选择的头像
    	}
    }


6、注册HeadActivity

activity 
            android:label="选择头像"
            android:icon="@drawable/ic_launcher"
            android:name=".HeadActivity"></activity>




  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.贴吧会员登录成功后将通过Cookies保存临时信息替换原来的session存储,解决登录超时与占用服务器 资源问题 2.帖子以及作者搜索功能更加完善完善 增加查看新帖以及最新回复功能(可以在后台禁止非会员查看) 3.多处验证码,登录,注册,发帖,回复...在后台任意开启关闭 防止暴力注册发帖 垃圾广告侵扰问题 4.贴吧分类以及子分类的任意排序,以及字符长度控制 避免标题过长使页面错位 5.自定义式的贴吧首页调用,只需点动鼠标就可实现任意版面的调用(替换了原来复杂的手工修改代码然后再通过JS调用模式) 6.根据网友建议修改退出登录后会返回退出前的那个页面 7.贴吧内文章 置顶、精华、热门回复、热门点击、会员排行自动调用(每个版块的调用条数可以在后台设置) 8.吧内短信息功能,贴吧好友可以互发信息 9.凡是在帖子以及其他页面显示会员用户名的都可以点击用户名查看用户详细资料(可以在后台禁止非会员查看) 10.个人中心的全新修改,增加若干新功能以及自己帖子主题以及回复内容的查看 11.无限级别分类轻松打造多样化贴吧 12.网页模板化,界面样式可以在后台随便修改,风格制作快速简单 13.会员注册页面结合JavaScript脚本人性化的提示增加用户体验(在程序内也使用了大量的JavaScript脚本) 14.是否允许会员的匿名功能(在后台有开关) 15.帖子回收站功能避免错误删除以及故意删除(可在回收站彻底删除) 16.增加IP屏蔽和禁止会员注册关键字功能 17.多处验证码,登录,注册,发帖,回复..............在后台任意开启关闭 18.广告功能,为个人网站盈利考虑放置多处广告位可填写任何广告代码 19.新的数据库备份功能,在线复制、在线压缩、在线备份、在线恢复 彻底解决木马改名运行漏洞 全新的后台界面以及简单容易的功能设置上手更容易 20.贴吧版权信息使用者可以自由修改 21.全新的贴吧投诉贴吧管理员申请,每个会员允许成为多个贴吧的吧主 22.重新设置的友情链接可以自由调动显示的先后顺序以及是否在新窗口打开链接 23.增加登陆日志功能记录贴吧的每一次登陆包括登陆成功与登陆失败 24.更改了密码找回方式增加问题回答找回密码功能 25.应部分网友要求增加了会员头像功能,使贴吧会员在吧内表现更加个性 26.全新的后台设计以及便捷下拉菜单的管理员管理方式使贴吧更加人性化
【资源介绍】 该项目是个人毕设项目,答辩评审分达到95分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 一 mongodb使用 1)命令函: (mongo:代表进入mongo环境) (show dbs :显示数据库) (db当前) (use goods :切换到goods) 2)Token令牌 : 就是一个加密的字符串 加密算法在。 权限管理 当第一次登陆以后生成一个令牌 (这个令牌是加密的) 设置有效期 用户第一次使用用户名登陆成功后,后端生成病返回给前端保存 令牌是有有限期的 亦可以伪造 所以要校验 nodejs 有加密和解-解密 步骤一:项目准备工作 1 vue create myprojct 创建项目 (myprojct 项目名字) 2 淘宝镜像源npm install -g cnpm(使用下载更快) 1)myproject安装 项目所需的各种依赖 1 npm install vue-resource --save -dev 2 npm install axios --save 3 npm install element-ui -S 4 npm install vuex --save 5 npm install animate.css --save 6 npm install -g babel 7 npm i core-js 2)mongodb安装 上传头像 mongo 先下载Npm i mullter 1mongodb文件夹:在mongodb index文件的作用引用 注意点当每次编写接口都需要在index.js 引入路由文件 以及router.use(文件路径,文件名) 3)引入公共css在public (reset文件夹名字)第二要使用在public里面的index.html 引入css <link rel="stylesheet" href="css/reset.css"> <link href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet"> 这一个是引入boootcss这个css 4)router.js 路由 1 定义(路由)组件 2 定义路由 3 创建 router 实例, 4 然后传 `routes` 配置 创建和挂载根实例。导出路由然后在min.js引入 在这个项目里面使用了嵌套路由注意和 LeftMenu.vue 关系 children 里面是路由嵌套 leftmenu后面细说 5)配置min.js store在后台管理系统里面是没有使用的 ``` 6)图片assets 7)在views创建 Register.vue Login.vue 404.vue项目 index.vue 1 注册页面 接口是user.js 登录页面 有有联系页面是myproject 的 http.js 和login.vue Authorization就是token当code===1时候 let targetUrl = this.$route.query.targetUrl || './Index' 代码解释:声明一个目标路由如果有目标地址就跳转到目标地址 没有就跳转到首页面Index.vue 保存token 2创建htttp.js 引入 loading和引入axios 使用loading和请求拦截和相应拦截环节和使用loading 当 请求数据code==1 就跳转到index.vue token校验 跳转到index.vue 后components里面再创建leftMenu.vue 和HeadNav.vue 具体看leftMenu以里面的嵌套路由 这两个文件夹引入到views的 Index.vue里面 使用import .. from ..引入切注册组件 HeadNav.vue :取出token校验 解码(没写此步骤)当点击退出删除token leftMenu.vue 里面有嵌套路由 足以逻辑的使用 children增加子路由步骤 1在 leftMenu.vue 下面cheildren 的 ·{ path: "FoundEdit", name: "编辑商品" }, 2找到router.js

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值