聊天登陆之注册界面

安卓聊天软件的第一步,写好注册界面。

这里的注册界面我用到无网络型的数据库来进行增加查询用户名称及密码。

下面是注册界面的代码:

<span style="font-size:24px;">public class Register extends Activity {

	private RegisterOpenHelper reHelper;
	private RegisterDB registerDB;
	@SuppressWarnings("unused")
	private String UserName,UserPassword,UserRepassword;
	private User user;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_register);
		reHelper = new RegisterOpenHelper(this, "Users.db", null, 1);
		Button tijiao = (Button) findViewById(R.id.tijiao);
		
		tijiao.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				Register(v);
			}
		});
		
	}
	private void Register(View v){
		SQLiteDatabase db = reHelper.getWritableDatabase();
		ContentValues values = new ContentValues();
		//获取EditText写入的信息
		String userName = ((EditText)findViewById(R.id.register_username)).getText().toString();
		String userPassword = ((EditText) findViewById(R.id.register_password)).getText().toString();
		String userRepassword = ((EditText)findViewById(R.id.register_confirm)).getText().toString();
		Cursor cursor = db.query("user", null, null, null, null, null, null);
		user = new User();
		if(cursor.moveToFirst()){//遍历查询信息
			do{
					UserName = cursor.getString(cursor.getColumnIndex("user_name"));
					UserPassword = cursor.getString(cursor.getColumnIndex("user_password"));
					UserRepassword = cursor.getString(cursor.getColumnIndex("user_repassword"));
			}while(cursor.moveToNext());
		}
		cursor.close();
		if (userPassword.equals(userRepassword)) {
			if (!userPassword.isEmpty()) {
				if (!userName.isEmpty()) {
					if (!UserName.equals(userName)) {
						values.put("user_name", userName);
						values.put("user_password",userPassword);
						values.put("user_repassword", userRepassword);
						db.insert("user", null, values); 
						Toast.makeText(Register.this, "注册成功", Toast.LENGTH_SHORT).show();
						Intent intent = new Intent(Register.this,Main.class);
						startActivity(intent);
						return;
					} else {
						Toast.makeText(Register.this, "该用户已被注册", Toast.LENGTH_SHORT).show();
					}
				} else {
					Toast.makeText(Register.this, "用户名不能为空", Toast.LENGTH_SHORT).show();
				}
			} else {
				Toast.makeText(Register.this, "密码不能为空", Toast.LENGTH_SHORT).show();
			}
		} else {
			Toast.makeText(Register.this, "请再次确认密码", Toast.LENGTH_SHORT).show();
		}
	}
		
		
	}

	
</span>

接下来是注册界面的XML代码:

<span style="font-size:24px;"><?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    >
    

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

        <TextView
            android:layout_width="match_parent"
            android:layout_height="24dip"
            android:background="@color/cell_header_bg"
            android:gravity="center_vertical"
            android:paddingLeft="15dip"
            android:text="@string/str_input_necessary"
            android:textColor="@color/black"
            android:textSize="12sp" />
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="52dip"
            android:background="@drawable/contact_list_bg_selector"
            android:gravity="center_vertical"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="80dip"
                android:layout_height="fill_parent"
                android:layout_marginLeft="15dip"
                android:gravity="center_vertical"
                android:text="@string/str_register_username"
                android:textColor="@color/black"
                android:textSize="16sp" />

             <EditText
                android:id="@+id/register_username"
                style="@style/register_editbox"
                android:ellipsize="end"
                android:hint="@string/str_register_username_hint" />
        </LinearLayout>

       

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="52dip"
            android:background="@drawable/contact_list_bg_selector"
            android:gravity="center_vertical"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="80dip"
                android:layout_height="fill_parent"
                android:layout_marginLeft="15dip"
                android:gravity="center_vertical"
                android:text="@string/str_register_password"
                android:textColor="@color/black"
                android:textSize="16sp" />

            <EditText
                android:id="@+id/register_password"
                style="@style/register_editbox"
                android:ellipsize="end"
                android:hint="@string/str_register_password_hint"
                android:password="true" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="52dip"
            android:background="@drawable/contact_list_bg_selector"
            android:gravity="center_vertical"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="80dip"
                android:layout_height="fill_parent"
                android:layout_marginLeft="15dip"
                android:gravity="center_vertical"
                android:text="@string/str_register_confirm"
                android:textColor="@color/black"
                android:textSize="16sp" />

            <EditText
                android:id="@+id/register_confirm"
                style="@style/register_editbox"
                android:ellipsize="end"
                android:hint="@string/str_register_confirm_hint"
                android:inputType="textPassword"
                android:password="true" />
        </LinearLayout>
       
        <AbsoluteLayout 
		   	   android:layout_width="match_parent"
           	   android:layout_height="52dip" 
           	   android:background="@drawable/contact_list_bg_selector" >
       <Button
               android:id="@+id/tijiao"
               android:layout_width="100dip"
               android:layout_height="wrap_content"
               android:layout_x="100dp"
               android:layout_y="0dp"
               android:text="提交" />
       </AbsoluteLayout>
    </LinearLayout>

</ScrollView></span>
然后我们来看一下主页面,这里登陆成功后会跳转到注册界面,如需更改跳转后的界面,可将代码:
<span style="font-size:24px;">butregister.setOnClickListener(new View.OnClickListener() {
		
			public void onClick(View v) {
				finish();
				Intent intent = new Intent(Main.this,Register.class);
				startActivity(intent);
			}
		});</span>
中的Register.class更换为所需界面 (名称.class)

主页面代码:

<span style="font-size:24px;">public class Main extends Activity {

	private RegisterOpenHelper reHelper;
	private String userPasswordString;
	private User user;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		reHelper = new RegisterOpenHelper(this, "Users.db", null, 1);
		Button butregister = (Button)findViewById(R.id.butregister);
		Button butlogin = (Button)findViewById(R.id.butlogin);
		butregister.setOnClickListener(new View.OnClickListener() {
		
			public void onClick(View v) {
				finish();
				Intent intent = new Intent(Main.this,Register.class);
				startActivity(intent);
			}
		});
		butlogin.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Login(v);
			}
		});
	}
	private void Login(View v){
		SQLiteDatabase db = reHelper.getWritableDatabase();
		String userName = ((EditText)findViewById(R.id.register_username)).getText().toString();
		String userPassword = ((EditText) findViewById(R.id.register_password)).getText().toString();
		Cursor cursor = db.query("user", null, null, null, null, null, null);
		user = new User();
		if(cursor.moveToFirst()){
			do{
					String UserName = cursor.getString(cursor.getColumnIndex("user_name"));
					String UserPassword = cursor.getString(cursor.getColumnIndex("user_password"));
					String UserRepassword = cursor.getString(cursor.getColumnIndex("user_repassword"));
					userPasswordString = UserPassword;
			}while(cursor.moveToNext());
		}
		cursor.close();
		
		if((userPassword.compareTo(userPasswordString))==0){
			finish();
			Toast.makeText(Main.this, "登陆成功", Toast.LENGTH_SHORT).show();
			Intent intent = new Intent(Main.this,Register.class);
			startActivity(intent);
		}
		
	}

	
}
</span>
主页面XML代码:

<span style="font-size:24px;"><TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context="com.example.chat.Main" >

     <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="52dip"
            android:background="@drawable/contact_list_bg_selector"
            android:gravity="center_vertical"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="80dip"
                android:layout_height="fill_parent"
                android:layout_marginLeft="15dip"
                android:gravity="center_vertical"
                android:text="@string/str_register_username"
                android:textColor="@color/black"
                android:textSize="16sp" />

             <EditText
                android:id="@+id/register_username"
                style="@style/register_editbox"
                android:ellipsize="end"
                android:hint="@string/str_register_username_hint" />
        </LinearLayout>
          <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="52dip"
            android:background="@drawable/contact_list_bg_selector"
            android:gravity="center_vertical"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="80dip"
                android:layout_height="fill_parent"
                android:layout_marginLeft="15dip"
                android:gravity="center_vertical"
                android:text="@string/str_register_password"
                android:textColor="@color/black"
                android:textSize="16sp" />

            <EditText
                android:id="@+id/register_password"
                style="@style/register_editbox"
                android:ellipsize="end"
                android:hint="@string/str_register_password_hint"
                android:password="true" />
        </LinearLayout>
        <LinearLayout 
		   	   android:layout_width="match_parent"
           	   android:layout_height="52dip" 
           	   android:background="@drawable/contact_list_bg_selector" >
       <Button
               android:id="@+id/butregister"
               android:layout_width="100dip"
               android:layout_height="wrap_content"
               android:text="注册" />
       <Button
               android:id="@+id/butlogin"
               android:layout_width="100dip"
               android:layout_height="wrap_content"
               android:text="登录" />
       </LinearLayout>
  
      
</TableLayout>
</span>
在这里我们用到数据库。

数据库建表代码:

<span style="font-size:24px;">public static final String CREATE_USER = "create table user("
			  + "id integer primary key autoincrement,"
			  + "user_name text,"
			  + "user_password text,"
			  + "user_repassword text)";</span>
代码链接下载:http://download.csdn.net/download/lady_zhou/8786513


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本项目是一个基于安卓的Android仿微信客户端-猫友。是一个csdn上的朋友的原创项目,原帖可以看这里http://blog.csdn.net/ericfantastic/article/details/49451249 实现了微信的登录注册、主界面聊天会话、通讯录、发现界面、个人设置、添加好友、扫描二维码、视频通话、等所有基本功能。 下面是具体搭建方法: 1、下载Openfire的安装包:http://download.csdn.net/detail/ericfantastic/9219685 Openfire服务器及MySQL具体配置可以参考:http://www.th7.cn/db/mysql/201406/59838.shtml 2、建议下载Openfire自带的PC客户端Spark,方便测试功能:http://download.csdn.net/detail/ericfantastic/9219815 3、修改源码中的服务器主机地址:在ConnetServer.java中,修改Configuration为本地的IP地址。 4、修改添加好友中的JID主机名:在AddFriendActivity.java中,修改addFriend方法中的"@ericwork-pc"修改为服务器的主机名,不区分大小写; 5、修改聊天页面中的JID主机名:在ChatActivity.java中,修改发送按钮的监听事件中的"@ericwork-pc",同上。 实现一个IM实时聊天应用,少不了弄服务器,目前开源的Openfire服务器就比较合适,而且很多功能都已经封装好了,实现聊天APP就简洁很多。服务器后端的数据库我选择了MySQL,当然Openfire也支持大部分的主流数据库,只要在配置的时候修改好参数即可;搭建的时候,把服务器配到8G内存笔记本上,网上得知,Openfire每个线程大约占4k内存,那理论上是可以80w 用户,当然实际肯定没那么多,Openfire在一台8G的主流服务器上支持30W的用户肯定没有问题。 简单说明一下Eric_JQM_Chat工程目录结构,当初开发的时候初衷只是玩玩openfire实现IM的过程,没想到一写就写了一通,对模块也没有很好的分包,还请多多包涵。 可以脸红的说,基本上所有功能实现都放在第一个eric_jqm_chat包里了,第二个Service包主要放与于后台服务相关的包,但后来这些服务我也都没有启用,后面的四个Zxing包就是实现二维码扫描的包,具体如何实现我的博客里有介绍。 Login登录相关,包括保存当前登录账号密码,下次直接登录使用等功能; Register注册相关,包括本地输入校验; MainActivity主界面相关,包含四个Fragment页面、上方Actionbar及下方的自定义View选项; TabFragment会话界面,用于接收收到的所有消息,并统计条目; TabFragment2通讯录界面,加载用户的好友列表; TabFragment3发现界面,功能尚未添加; TabFragment4个人设置页面,加载个人资料; AddFriendActivity添加好友页面,搜索仅仅是获取用户头像,申请添加好友,及接受好友添加请求并处理; CaptureActivity扫描二维码页面,扫描二维码功能; CatchCameraActivity视频通话页面,仅完成获取前置摄像头预览及获取网络RTSP视频流播放; ConnetServer连接服务器类,单例模式; FormatTools简单工具类,用于各种类型数据间的转换; ChatActivity聊天页面,实现指定好友的聊天功能,及聊天记录的保存; FriendDetail聊天好友详情页面,更改聊天背景等; 主要的类就是这些,具体的详细实现大家可以直接看代码,注释写的很详细了,有疑问的欢迎交流,存在bug还请指正。
多人聊天室是一种通过互联网连接多个用户进行实时交流的应用程序。在Java中实现一个多人聊天室需要包括以下几个主要部分:服务器端、客户端和注册功能。 服务器端是聊天室的核心组件,负责接收和处理客户端的连接请求,并转发消息给其他在线用户。它需要使用Java的Socket和ServerSocket类来建立与客户端的通信连接,并使用多线程实现多个用户的同时连接和消息分发。服务器端还需要维护用户列表,记录用户的信息,如用户名、IP地址等。 客户端是用户使用的程序,可以通过GUI界面或命令行与服务器端进行通信。在多人聊天室中,客户端需要与服务器建立连接,并发送和接收消息。客户端也需要使用Java的Socket类来与服务器进行通信。当用户发送消息时,客户端将消息发送给服务器端,服务器端再将该消息转发给其他在线用户。当客户端接收到其他用户发送的消息时,它会将消息显示在用户界面上。 注册功能是实现用户账号管理的一部分。用户需要提供一个唯一的用户名和密码进行注册,并且在登陆聊天室时需要验证用户名和密码。在Java中,可以将用户账号信息存储在数据库中,如MySQL或SQLite。注册功能还需要实现用户名和密码的校验,确保用户输入的信息符合规范。 总结起来,实现一个含有注册功能的多人聊天室需要编写服务器端和客户端的Java代码,使用Socket类进行通信,并使用多线程实现多个用户的同时连接和消息处理。还需要设计和实现用户账号管理功能,包括注册登陆验证。通过这些步骤,就可以实现一个基本的多人聊天室应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值