源码下载:http://download.csdn.net/download/jjhahage/10034519

PS:一般情况下,我们在写android程序的时候,想要实现登录注册功能,可以选择自己用servlet作为服务端来实现过滤没有注册过的用户,但是太麻烦,而且不是随时都可以用的。这里介绍一个移动后端云服务器平台bmob,这不仅可以实现云数据库储存,还可以获取手机验证等,随时随地都很轻松,下面写一个小demo,实现一个登陆注册功能,认识增删查改。下面我稍微写一个例子,简单实现注册登录功能。

1:首先到bmob官网,注册一个账号,里面创建一个项目,如图:

2:创建一个android项目,(AndroidStudio)

(1):添加依赖:在app下的build.gradle中添加compile 'cn.bmob.android:bmob-sdk:3.4.6'
compile 'com.squareup.okhttp:okhttp:2.4.0'//CDN文件服务使用okhttp相关包进行文件的上传和下载(必填)
compile 'com.squareup.okio:okio:1.4.0'sourceSets {
main.jniLibs.srcDirs = ['libs']
}useLibrary 'org.apache.http.legacy'

位置如图:


(2)添加权限:

<!--允许联网--><uses-permission android:name="android.permission.INTERNET"/>
<!--获取GSM(2g)、WCDMA(联通3g)等网络状态的信息 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--获取wifi网络状态的信息-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--保持CPU运转,屏幕和键盘灯有可能是关闭的,用于文件上传和下载-->
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<!--获取sd卡写的权限,用于文件上传和下载-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--允许读取手机状态 用于创建BmobInstallation-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

(3):添加maven,到指定的云库
maven { url "https://raw.github.com/bmob/bmob-android-sdk/master"}

(4:)初始化:

Bmob.initialize(this,"你的 应用ID");

3:下面就是代码了

写一个实体类person,

package cn.day1.model;import cn.bmob.v3.BmobObject;/*** Created by CMusketeer on 17/10/22.*/
public class Person extends BmobObject {private String name;private String password;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

写三个布局,分别是注册页面,登录页面,登录成功跳转的页面

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<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="vertical"tools:context="cn.day1.bmobtest1.MainActivity"><TextViewandroid:gravity="center"android:textSize="20dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="登录" /><EditTextandroid:id="@+id/id_username"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="username"/><EditTextandroid:id="@+id/id_userpassword"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="password" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:id="@+id/id_ok"android:layout_width="0dp"android:text="登录"android:layout_height="wrap_content"android:layout_weight="1"/><Buttonandroid:id="@+id/id_register"android:text="注册"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1" /></LinearLayout>
</LinearLayout>

注册页面:register_layout.xml,先把各页面都写了,后续就好办了。

<?xml version="1.0" encoding="utf-8"?>
<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="vertical"tools:context="cn.day1.bmobtest1.MainActivity"><TextViewandroid:gravity="center"android:textSize="20dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="注册中心" /><EditTextandroid:id="@+id/id_register_username"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="username"/><EditTextandroid:id="@+id/id_register_userpassword"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="password" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:id="@+id/id_register_ok"android:text="注册"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1" /></LinearLayout>
</LinearLayout>

登录成功页面:success.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"><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:text="成功登录"android:gravity="center"android:textSize="50dp"/></LinearLayout>

注册Activity,RegisterActivity.java  功能:增

这里是一个简单的注册,里面没有加判断,所以,一个号可以重复注册,但是只有唯一ID。

package cn.day1.bmobtest1;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;import cn.bmob.v3.listener.SaveListener;
import cn.day1.model.Person;/*** Created by CMusketeer on 17/10/22.*/
public class RegisterActivity extends Activity {private TextView register_user;private TextView register_password;private Button register_ok;private Person p2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.register_layout);addControl();//加载控件addRegisterShow();//注册方法}private void addRegisterShow() {register_ok.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {final String rUser=register_user.getText().toString().trim();String rPassword=register_password.getText().toString().trim();//判断用户名和密码是否为空,如果为空则不能进去。if(rUser.length()>0&&rPassword.length()>0){p2 = new Person();p2.setName(rUser);p2.setPassword(rPassword);//插入方法p2.save(RegisterActivity.this, new SaveListener() {@Overridepublic void onSuccess() {// TODO Auto-generated method stubregister_password.setText("");register_user.setText("");Toast.makeText(RegisterActivity.this, "添加数据成功,返回objectId为:" + p2.getObjectId(), Toast.LENGTH_SHORT).show();}@Overridepublic void onFailure(int code, String msg) {// TODO Auto-generated method stubToast.makeText(RegisterActivity.this, "创建数据失败:" + msg, Toast.LENGTH_SHORT).show();}});}else{Toast.makeText(RegisterActivity.this, "用户名或者密码不能为空", Toast.LENGTH_SHORT).show();}}});}private void addControl() {register_user = (TextView) findViewById(R.id.id_register_username);register_password = (TextView) findViewById(R.id.id_register_userpassword);register_ok = (Button) findViewById(R.id.id_register_ok);}
}

登录页面:MainActivity.java   功能:查

package cn.day1.bmobtest1;import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;import java.util.List;import cn.bmob.v3.Bmob;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.listener.FindListener;
import cn.day1.model.Person;public class MainActivity extends AppCompatActivity {private Person p2;private TextView lgUser;private TextView lgPassword;private Button btn_ok;private Button btn_rg;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Bmob.initialize(this, "你的 应用id");setContentView(R.layout.activity_main);addControl();addLogin();}private void addLogin() {btn_rg.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(MainActivity.this,RegisterActivity.class);startActivity(intent);}});btn_ok.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {BmobQuery<Person> query=new BmobQuery<Person>();query.findObjects(MainActivity.this,new FindListener<Person>(){String lgU=lgUser.getText().toString().trim();String lgp=lgPassword.getText().toString().trim();int panduan=1;@Overridepublic void onSuccess(List<Person> list) {for(int i=0;i<list.size();i++){String name=list.get(i).getName();String password=list.get(i).getPassword();Log.e("user","唯一 id:"+list.get(i).getObjectId()+"----"+name+"---"+password);if(name.equals(lgU) && password.equals(lgp)){Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();panduan=2;//成功后panduan等于2,则跳出该循环,并且把输入快都清空,跳转到指定页面lgUser.setText("");lgPassword.setText("");Intent intent=new Intent(MainActivity.this,Success.class);startActivity(intent);break;}}if(panduan==1){Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show();}}@Overridepublic void onError(int i, String s) {}});}});}private void addControl() {lgUser = (TextView) findViewById(R.id.id_username);lgPassword = (TextView) findViewById(R.id.id_userpassword);btn_ok = (Button) findViewById(R.id.id_ok);btn_rg = (Button) findViewById(R.id.id_register);}
}

登录成功页面 Success.java

package cn.day1.bmobtest1;import android.app.Activity;
import android.os.Bundle;/*** Created by CMusketeer on 17/10/22.*/
public class Success extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.success);}
}

总结:

唯一id的获取可以通过用户名来获取,当用户输入用户名时,只要数据库中用户名和输入的一致,则就可以list.get(i).getObjectId()

 处理增删查改
增:
person = new Person();
person.setName(user);
person.setAddress(password);
person.save(new SaveListener<String>() {@Overridepublic void done(String s, BmobException e) {if(e == null){Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();}else{}}
});
删
Id可以通过查处所有的,从而得到id
id=list.get(i).getObjectId();person = new Person();
person.delete(id, new UpdateListener() {@Overridepublic void done(BmobException e) {if(e==null){Log.e("sss","删除成功"); }}});查 :和上面的查不大一样,这也是一种方法
//查询所有,
query.findObjects(new FindListener<Person>() {@Overridepublic void done(List<Person> list, BmobException e) {
}}
//查询单个
query.getObject(id,new listener)
改
person.setName(“111”);
person.update(id,new UpdateListener() {@Overridepublic void done(BmobException e) {if(e==null){
//                                        Toast.makeText(MainActivity.this, "更改成功", Toast.LENGTH_SHORT).show();Log.e("sss","更改成功");}}

效果图:

转载于:https://www.cnblogs.com/cmusketeer/p/8296067.html

Android之Bmob移动后端云服务器相关推荐

  1. android中bmob云存储,Android中的Bmob移动后端云服务器功能

    PS:一般情况下,我们在写android程序的时候,想要实现登录注册功能,可以选择自己用servlet作为服务端来实现过滤没有注册过的用户,但是太麻烦,而且不是随时都可以用的.这里介绍一个移动后端云服 ...

  2. Android使用Bmob移动后端云Restful API需要注意的问题

    如果你自己想做一个客户端玩玩,但是又不想去搭建后台服务器,显然Bmob移动后端云是你的最佳选择.官方地址见bmob,文档地址见http://www.bmob.cn/docs.他提供了Android的s ...

  3. Bmob 移动后端云服务器平台实现登录注册

    源码下载:http://download.csdn.net/download/jjhahage/10034519 PS:一般情况下,我们在写android程序的时候,想要实现登录注册功能,可以选择自己 ...

  4. Bmob移动后端云服务平台

    Bmob移动后端云服务平台--Android从零开始--(二)android快速入门 上一篇博文我们简单介绍何为Bmob移动后端服务平台,以及其相关功能和优势.本文将利用Bmob快速实现简单例子,进一 ...

  5. bmob php,文档-Bmob移动后端云服务平台

    Q:php为什么添加数据的时候字段的值为中文就会出错 A:检查下你的php编码,建议改为utf-8编码. Q:有没有ts的sdk A:php的sdk只有一个 Q:使用PHP CURL 推送消息的代码, ...

  6. bmob项目php后端,bmob开发文档-Bmob移动后端云服务平台

    容器服务快速入门 简介 您可以把代码部署到Bmob容器上运行. 目前容器支持PHP和Java的语言环境. 你可以将整个网站架设在Bmob容器之上,提供了网站托管服务. 只需要完成下面的两步,你就可以使 ...

  7. ps4服务器位置,ps4 云服务器地址

    ps4 云服务器地址 内容精选 换一换 当创建文件系统后,您需要使用云服务器来挂载该文件系统,以实现多个云服务器共享使用文件系统的目的.本章节以Windows 2012版本操作系统为例进行NFS文件系 ...

  8. 华为找手机功能显示连接服务器失败,手机怎么连接云服务器异常

    手机怎么连接云服务器异常 内容精选 换一换 对等连接创建完成后,两个VPC还是不能互通.以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因.如果解 ...

  9. e4a编写文件服务器,e4a教程 联云服务器

    e4a教程 联云服务器 内容精选 换一换 修改云服务器信息,目前支持修改云服务器名称及描述和hostname.该接口支持企业项目细粒度权限的校验,具体细粒度请参见 ecs:cloudServers:p ...

最新文章

  1. c++错误之map的find()返回值类型
  2. Kafka:那我走?这个新一代消息中间件,彻底火了!
  3. 2019 ICPC Asia Nanchang Regional And and Pair 组合数学
  4. 【在虚拟环境下完美解决】1698: error: (-215:Assertion failed) empty() in function cv::CascadeClassifier
  5. MYSQL锁机制---MyISAM表锁
  6. spring-cloud-sleuth 和 分布式链路跟踪系统
  7. Java算法常见面试题及答案
  8. java毕业设计——基于java+JavaBean+jsp的网上零食销售系统设计与实现(毕业论文+程序源码)——网上零食销售系统
  9. kali linux基本命令
  10. 千万级数据清洗ETL设计方案
  11. Win系统 - Windows10 系统恢复语言栏位置的方法(二)
  12. jenkins 插件_Jenkins通过Ruby插件赢得了新的皇冠
  13. 蘑菇街2016校园招聘——回文串
  14. 2021.11.19【读书笔记】丨snakemake常见问题汇总(下)
  15. Hedge fund Two Sigma hires Alfred Spector as Chief Technology Officer
  16. 12:Linux日常运维技巧-1
  17. python01 初识 bmi测量
  18. 商业web 漏洞扫描神器———AWVS篇基础
  19. 一周信创舆情观察(11.22~11.28)
  20. 办公必备计算机软件,干货分享!电脑必备的4款办公神器

热门文章

  1. mysql 对插入超过表字段限制时的处理
  2. VNC CentOS
  3. ActiveX 控件导入程序
  4. 一起谈.NET技术,初识Silverlight 4及其架构
  5. Linux操作系统下共享文件夹设置方法介绍
  6. 【Python学习系列二十四】scikit-learn库逻辑回归实现唯品会用户购买行为预测
  7. 【精华】Linux用户Hive权限控制实践
  8. MapReduce基础开发之十三FileSystem实现本地文件上传
  9. Java定时多线程任务实现(TimerTask)
  10. Leetcode 347. 前K个高频元素 解题思路及C++实现