基于Smack3.0.4+ Openfire3.10.2开发之Android 客户端之二解析

java哥 阅读:219 2021-03-31 22:12:43 评论:0

我们在之前依次介绍openfire部署以及smack常用API的使用,这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前面我所发布的OpenFire和Smack的相关文章。今天所讲解的文章只是 :基于Smack3.0.4+ Openfire3.10.2开发之Android 客户端之二(注册界面设计和实现)。

1、源代码结构介绍:


activity包下存放一些android页面交互相关的控制程序,还有一个些公共帮助类

application包存放时应用程序相关信息

util中存放一些常用的工具类

view中一些和android的UI相关的显示控件


AndroidManifest.xml为android功能清单的配置文件与(基于Smack3.0.4+ Openfire3.10.2开发之Android 客户端之一(登入界面设计和实习))一致,在此就不再做详细述说和截图。


2、核心代码介绍

package com.msn.activity; 
 
import com.msn.R; 
import com.msn.util.ToastUtil; 
import com.msn.view.LoadingDialog; 
import com.msn.view.TitleBarView; 
 
import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.text.TextUtils; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
 
public class RegisterActivity extends Activity { 
	private Context mContext; 
	private Button btn_complete; 
	private TitleBarView mTitleBarView; 
	private EditText et_name,et_password; 
	 
	private String account,password; 
	private LoadingDialog loadDialog; 
	 
	//private XmppConnectionManager xmppConnectionManager; 
	@Override 
	public void onCreate(Bundle savedInstanceState) { 
		// TODO Auto-generated method stub 
		super.onCreate(savedInstanceState); 
		setContentView(R.layout.activity_register_userinfo); 
		mContext=this; 
		//对话框初始化 
		loadDialog=new LoadingDialog(this); 
		findView(); 
		initTitleView(); 
		init(); 
	} 
	 
	//相关组件初始化 
	private void findView(){ 
		mTitleBarView=(TitleBarView) findViewById(R.id.title_bar); 
		btn_complete=(Button) findViewById(R.id.register_complete); 
		 
		et_name=(EditText) findViewById(R.id.name);//账号 
		et_password=(EditText) findViewById(R.id.password);//密码 
		 
	} 
	 
	private void init(){ 
		btn_complete.setOnClickListener(null); 
	} 
	 
	private void initTitleView(){ 
		mTitleBarView.setCommonTitle(View.VISIBLE, View.VISIBLE,View.GONE, View.GONE); 
		mTitleBarView.setTitleText(R.string.title_register_info); 
		mTitleBarView.setBtnLeft(R.drawable.fft, R.string.back); 
		mTitleBarView.setBtnLeftOnclickListener(new OnClickListener() {	 
			@Override 
			public void onClick(View v) { 
				finish(); 
			} 
		}); 
	} 
	 
	/** 
	 * 点击注册 
	 */ 
	private OnClickListener completeOnClickListener=new OnClickListener() { 
		@Override 
		public void onClick(View v) { 
			doReg(); 
		} 
	}; 
	 
	void doReg(){ 
		account=et_name.getText().toString(); 
		password=et_password.getText().toString(); 
		if(TextUtils.isEmpty(account)){ 
			ToastUtil.showLongToast(mContext, "请填写昵称"); 
			return; 
		} 
		if(TextUtils.isEmpty(password)){ 
			ToastUtil.showLongToast(mContext, "请填写密码"); 
			return; 
		} 
		loadDialog.setTitle("正在注册..."); 
		loadDialog.show(); 
		new Thread(new Runnable() { 
			@Override 
			public void run() { 
//				XMPPConnection mXMPPConnection=xmppConnectionManager.init(); 
//				try { 
//					mXMPPConnection.connect(); 
//					int result=XmppUtil.register(mXMPPConnection, account, password); 
//					mHandler.sendEmptyMessage(result); 
//				} catch (XMPPException e) { 
//					e.printStackTrace(); 
//					mHandler.sendEmptyMessage(4); 
//				} 
			} 
		}).start(); 
	} 
	 
	 
 
} 

相关的资源文件,我就不一一做详细的述说,这里提供该项目的下载地址:源代码下载地址

3、相关展示:



声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
KIKK导航

KIKK导航

关注我们