基于Smack3.0.4+ Openfire3.10.2开发之Android 客户端之二
我们在之前依次介绍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.作者投稿可能会经我们编辑修改或补充。