热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Android中的Bmob移动后端云服务器功能

这里介绍一个移动后端云服务器平台bmob,这不仅可以实现云数据库储存,还可以获取手机验证等,随时随地都很轻松,下面写一个小demo,实现一个登陆注册功能,认识增删查改

源码下载:http://xiazai.jb51.net/201801/yuanma/BmobTest1.rar

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)添加权限:












(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

<&#63;xml version="1.0" encoding="utf-8"&#63;>

 
 
 
 
 

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

<&#63;xml version="1.0" encoding="utf-8"&#63;>

 
 
 
 
 

登录成功页面:success.xml

<&#63;xml version="1.0" encoding="utf-8"&#63;>

 

注册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;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.register_layout);
 addControl();//加载控件
 addRegisterShow();//注册方法
 }
 private void addRegisterShow() {
 register_ok.setOnClickListener(new View.OnClickListener() {
  @Override
  public 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() {
   @Override
   public void onSuccess() {
    // TODO Auto-generated method stub
    register_password.setText("");
    register_user.setText("");
    Toast.makeText(RegisterActivity.this, "添加数据成功,返回objectId为:" + p2.getObjectId(), Toast.LENGTH_SHORT).show();
   }
   @Override
   public void onFailure(int code, String msg) {
    // TODO Auto-generated method stub
    Toast.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;
 @Override
 protected 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() {
  @Override
  public void onClick(View v) {
  Intent intent=new Intent(MainActivity.this,RegisterActivity.class);
  startActivity(intent);
  }
 });
 btn_ok.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
  BmobQuery query=new BmobQuery();
  query.findObjects(MainActivity.this,new FindListener(){
   String lgU=lgUser.getText().toString().trim();
   String lgp=lgPassword.getText().toString().trim();
   int panduan=1;
   @Override
   public void onSuccess(List list) {
   for(int i=0;i

登录成功页面 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 {
 @Override
 protected 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() {
 @Override
 public 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() {
 @Override
 public void done(BmobException e) {
 if(e==null){
 Log.e("sss","删除成功"); }
 }
 });
查 :和上面的查不大一样,这也是一种方法
//查询所有,
query.findObjects(new FindListener() {
 @Override
 public void done(List list, BmobException e) {
}}
//查询单个
query.getObject(id,new listener)
改
person.setName(“111”);
person.update(id,new UpdateListener() {
    @Override
    public void done(BmobException e) {
     if(e==null){
//     Toast.makeText(MainActivity.this, "更改成功", Toast.LENGTH_SHORT).show();
     Log.e("sss","更改成功");
     }
    }


效果图:

总结

以上所述是小编给大家介绍的Android中的Bmob移动后端云服务器功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了StartingzookeeperFAILEDTOSTART相关的知识,希望对你有一定的参考价值。下载路径:https://ar ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
author-avatar
浪奔西安
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有