亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android怎么使用Bmob后端云實現失物招領功能

發布時間:2021-03-24 13:40:41 來源:億速云 閱讀:217 作者:小新 欄目:開發技術

這篇文章主要介紹Android怎么使用Bmob后端云實現失物招領功能,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、創建賬號

需要的自己去注冊,后端云Bmob首頁地址:https://www.bmob.cn/

二、網站后臺創建應用(如圖)

這里使用的是免費版的

Android怎么使用Bmob后端云實現失物招領功能

創建成功之后點擊創建的應用進去,在設置->應用秘鑰中可以找到應用秘鑰

Android怎么使用Bmob后端云實現失物招領功能

三、AndroidStudio SDK導入信息配置

詳細參考:http://doc.bmob.cn/data/android/index.html

1、在 Project 的 build.gradle 文件中添加 Bmob的maven倉庫地址:

buildscript {

  repositories {
    google()
        jcenter()   
  }
  dependencies {
        classpath 'com.android.tools.build:gradle:3.6.1'
  }
}

allprojects {
  repositories {
    google()
    jcenter()

    //Bmob的maven倉庫地址--必填
    maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
  }
}

task clean(type: Delete) {
  delete rootProject.buildDir
}

2、在app的build.gradle文件中添加compile依賴文件:

android {
    compileSdkVersion 30
  buildToolsVersion "30.0.3"

  **兼容Android6.0系統所需,如果這句話報錯,可在dependencies標簽下使用compile 'cn.bmob.android:http-legacy:1.0'**
  useLibrary 'org.apache.http.legacy'

  ...
}
dependencies {
  //以下SDK開發者請根據需要自行選擇
  //bmob-sdk:Bmob的android sdk包,包含了Bmob的數據存儲、文件等服務,以下是最新的bmob-sdk:
  //3.5.5:請務必查看下面注釋[1]
  implementation 'cn.bmob.android:bmob-sdk:3.5.5'

  //bmob-push:Bmob的推送包
  implementation 'cn.bmob.android:bmob-push:0.8'

  //bmob-im:Bmob的即時通訊包,注意每個版本的im依賴特定版本的bmob-sdk,具體的依賴關系可查看下面注釋[2]
  implementation 'cn.bmob.android:bmob-im:2.0.5@aar'
  implementation 'cn.bmob.android:bmob-sdk:3.4.7-aar'

  //bmob-sms :Bmob單獨為短信服務提供的包
  implementation 'cn.bmob.android:bmob-sms:1.0.1'

  //如果你想應用能夠兼容Android6.0,請添加此依賴(org.apache.http.legacy.jar)
  implementation 'cn.bmob.android:http-legacy:1.0'
}

3、在你的應用程序的AndroidManifest.xml文件中添加相應的權限:

<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" />

四、應用中使用詳情

這里演示部分的API:

1、啟動頁:

Android怎么使用Bmob后端云實現失物招領功能

初始化BmobSDK:

//第一:默認初始化
Bmob.initialize(this,"Your Application ID");

2、由登錄界面進入注冊頁面,進行賬戶注冊:

Android怎么使用Bmob后端云實現失物招領功能

輸入賬號密碼后點擊注冊按鈕:

  private void bmobRegisterAccount() {
    final String registerName = accountRegisterName.getText().toString().trim();//賬號
    final String registerPassword = accountRegisterPassword.getText().toString().trim();//密碼

    if (TextUtils.isEmpty(registerName) || TextUtils.isEmpty(registerPassword)) {
      showToast("注冊賬號或密碼為空");
      return;
    }

    BmobUser bmobUser = new BmobUser();
    bmobUser.setUsername(registerName);
    bmobUser.setPassword(registerPassword);
    bmobUser.signUp(new SaveListener<BmobUser>() {
      @Override
      public void done(BmobUser bmobUser, BmobException e) {
        if (e == null) {
          showToast("恭喜,注冊賬號成功");
          finish();
        } else {
          showToast("register fail:" + e.getMessage());
        }
      }
    });
  }

注冊成功后在后端云Bmob后臺有信心記錄:

Android怎么使用Bmob后端云實現失物招領功能

3、注冊成功后回到登錄界面

Android怎么使用Bmob后端云實現失物招領功能

輸入賬號密碼后點擊登錄按鈕:

  private void bmobUserAccountLogin() {
    final String accountName = accountLoginName.getText().toString().trim();//賬號
    final String accountPassword = accountLoginPassword.getText().toString().trim();//密碼

    if (TextUtils.isEmpty(accountName)) {
      showToast("賬號不能為空");
      return;
    }

    if (TextUtils.isEmpty(accountPassword)) {
      showToast("密碼不能為空");
      return;
    }

    //登錄過程
    showProgressBar();

    new Handler().postDelayed(new Runnable() {
      @Override
      public void run() {
        //BmobUser類為Bmob后端云提供類
        BmobUser bmobUser = new BmobUser();
        bmobUser.setUsername(accountName);
        bmobUser.setPassword(accountPassword);
        bmobUser.login(new SaveListener<BmobUser>() {
          @Override
          public void done(BmobUser bmobUser, BmobException e) {
            if (e == null) {
              //登錄成功后進入主界面
              Intent intent = new Intent(LoginActivity.this, LostAndFoundActivity.class);
              startActivity(intent);
              finish();
            } else {
              showToast("" + e.getMessage());
              hiddenProgressBar();//隱藏
            }
          }
        });
      }
    }, 3000);
  }

4、登錄成功后進入主界面,右上方按鈕進入失物招領的信息發布界面

Android怎么使用Bmob后端云實現失物招領功能

4-1、信息完成后,點擊右上角點擊發布按鈕,此時需要添加數據:
先創建bean類,繼承BmobObject類

public class LostInfomationReq extends BmobObject{
  private String title; //標題
  private String phoneNum;//手機號碼
  private String desc;//描述

  public String getTitle() {
    return title;
  }

  public void setTitle(String title) {
    this.title = title;
  }

  public String getPhoneNum() {
    return phoneNum;
  }

  public void setPhoneNum(String phoneNum) {
    this.phoneNum = phoneNum;
  }

  public String getDesc() {
    return desc;
  }

  public void setDesc(String desc) {
    this.desc = desc;
  }
}

4-2、發布信息:

  /**
   * @param titleName 標題
   * @param num    電話號碼
   * @param descridle 描述
   */
  private void publishLostInfo(String titleName, String num, String descridle) {
    LostInfomationReq lostInfomationReq = new LostInfomationReq();
    lostInfomationReq.setTitle(titleName);//titleName為用戶輸入的標題
    lostInfomationReq.setPhoneNum(num);//num為用戶輸入的號碼
    lostInfomationReq.setDesc(descridle);//descridle為信息描述
    lostInfomationReq.save(new SaveListener<String>() {
      @Override
      public void done(String s, BmobException e) {
        if (e == null) {
          showToast("招領信息發布成功");

          //成功后提示主界面刷新數據
          Intent intent = new Intent();
          setResult(RESULT_OK, intent);
          //成功后將頁面銷毀
          finish();
        } else {
          showToast("信息發布失敗");
        }
      }
    });
  }

4-3、添加數據成功后,在后臺會有插入的數據:

Android怎么使用Bmob后端云實現失物招領功能

5、主界面的信息需要讀取后臺用戶插入的數據:

Android怎么使用Bmob后端云實現失物招領功能

數據的查詢:

  private void initData() {
    BmobQuery<LostInfomationReq> lostInfomationReqBmobQuery = new BmobQuery<>();
    lostInfomationReqBmobQuery.order("-updatedAt");//排序
    lostInfomationReqBmobQuery.findObjects(new FindListener<LostInfomationReq>() {
      @Override
      public void done(List<LostInfomationReq> list, BmobException e) {
        if (e == null) {
          lostInfomationReqList = list;
          lostAndFoundAdapter.setData(list);
          recyclerView.setAdapter(lostAndFoundAdapter);
        } else {
          showToast("查詢數據失敗");
        }
      }
    });
  }

6、長按RecyclerView每條Item進行編輯與刪除操作:

Android怎么使用Bmob后端云實現失物招領功能

6-1、刪除操作即是將后臺中的將選中的信息刪除

  private void deleteItemData(final int position) {
    if (lostInfomationReqList.size() != 0) {
      LostInfomationReq lostInfomationReq = new LostInfomationReq();
      lostInfomationReq.setObjectId(lostInfomationReqList.get(position).getObjectId());
      lostInfomationReq.delete(new UpdateListener() {
        @Override
        public void done(BmobException e) {
          if (e == null) {
            lostInfomationReqList.remove(position);
            lostAndFoundAdapter.setData(lostInfomationReqList);
            lostAndFoundAdapter.notifyDataSetChanged();
          } else {
            showToast("刪除數據失敗");
          }
        }
      });
    }
  }

6-2、編輯操作即對數據進行修改

  /**
   * @param titleName 標題
   * @param num    電話號碼
   * @param descridle 描述
   */
  private void updataInfo(String titleName, String num, String descridle) {
    LostInfomationReq lostInfomationReq = new LostInfomationReq();
    lostInfomationReq.setTitle(titleName);//titleName為用戶輸入的標題
    lostInfomationReq.setPhoneNum(num);//num為用戶輸入的號碼
    lostInfomationReq.setDesc(descridle);//descridle為信息描述
    lostInfomationReq.update(infomationReq.getObjectId(), new UpdateListener() {
      @Override
      public void done(BmobException e) {
        if (e == null) {
          showToast("更新信息成功");
          //更新數據后提示主界面進行數據刷新
          Intent intent = new Intent();
          setResult(RESULT_OK, intent);
          finish();
        }
      }
    });
  }

7、使用PopupWindow長按彈出框

  private void showWindow(LostAndFoundHolder holder, final int pos) {
    //加載布局文件
    View contentview = LayoutInflater.from(mContext).inflate(R.layout.pop_window_view,null);
    final PopupWindow popupWindow = new PopupWindow(contentview, LinearLayout.LayoutParams.WRAP_CONTENT,
        LinearLayout.LayoutParams.WRAP_CONTENT);
    //設置焦點
    popupWindow.setFocusable(true);
    //觸摸框外
    popupWindow.setOutsideTouchable(true);
    //點擊空白處的時候讓PopupWindow消失
    popupWindow.setBackgroundDrawable(new ColorDrawable(0x00000000));
    //設置偏移量
    popupWindow.showAsDropDown(holder.time, 300, -100);

    //showAsDropDown(View anchor):相對某個控件的位置(正左下方),無偏移
    // showAsDropDown(View anchor, int xoff, int yoff):相對某個控件的位置,有偏移
    //showAtLocation(View parent, int gravity, int x, int y):相對于父控件的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以設置偏移或無偏移

    //點擊編輯按鈕
    contentview.findViewById(R.id.edit_btn).setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        //回調給主界面,進行數據操作
        mItemClickListener.onEditOrDeleteClick(pos, EDIT_CODE);
        //銷毀彈出框
        popupWindow.dismiss();
      }
    });

    //點擊刪除按鈕
    contentview.findViewById(R.id.delete_btn).setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        //回調給主界面,進行數據操作
        mItemClickListener.onEditOrDeleteClick(pos, DELETE_CODE);
        //銷毀彈出框
        popupWindow.dismiss();
      }
    });
  }

以上是“Android怎么使用Bmob后端云實現失物招領功能”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

方正县| 高淳县| 和平县| 富宁县| 铜川市| 抚宁县| 乐山市| 连平县| 利辛县| 苏尼特右旗| 汝城县| 肥西县| 墨竹工卡县| 利津县| 视频| 玉林市| 旬阳县| 新绛县| 滨州市| 沙坪坝区| 综艺| 元江| 原阳县| 肥城市| 寻乌县| 塔城市| 安徽省| 济宁市| 荆门市| 泉州市| 兴和县| 磐石市| 定西市| 罗定市| 满城县| 延津县| 大姚县| 久治县| 甘孜| 孝义市| 历史|