日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Android如何使用Bmob后端云實現失物招領功能

瀏覽:23日期:2022-09-20 11:49:14

最近在使用后端云Bmob對數據進行存儲,目的是在不搭建服務器的前提下,能對Android應用的數據進行操作處理,其實這篇是比較久之前寫的了,有些童鞋反饋說現在的源碼會有問題,所以我又重新運行了一下,隨著Bmob版本的更新,之前的源碼跑不起來,現在重新更新了最新版本做了個Demo.

實現步驟:

一、創建賬號

需要的自己去注冊,后端云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() {@Overridepublic 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(); } }); }8、總結

8-1、實現登錄、注冊的過程:

使用Bmob提供專門的用戶類——BmobUser來自動處理用戶賬戶管理所需的功能。有了這個類,你就可以在你的應用程序中添加用戶賬戶功能。BmobUser是BmobObject的一個子類,它繼承了BmobObject所有的方法,具有BmobObject相同的功能。不同的是,BmobUser增加了一些特定的關于用戶賬戶管理相關的功能。

8-2、失物招領:

這個過程中,我們對數據進行了添加、查詢、刪除以及更新操作,當然后端云Bmob還不止提供了這些API,還有很多API還需要掌握。

BmobDemo源碼:鏈接:https://pan.baidu.com/s/1wTcWWEitQT65MDtr3PSvhQ提取碼:emue

以上就是Android如何使用Bmob后端云實現失物招領功能的詳細內容,更多關于Android 實現失物招領功能的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美久久天堂| 麻豆精品在线观看| 国产夫妻在线| 激情中国色综合| 高清av一区| 四虎8848精品成人免费网站| 精品国产18久久久久久二百| 韩国一区二区三区视频| 福利片在线一区二区| 91亚洲自偷观看高清| 欧美日韩视频免费观看| 国产精品久久久久久久免费软件| 欧美日韩亚洲三区| 蜜桃久久久久| 高清不卡一区| 亚洲无线一线二线三线区别av| 国户精品久久久久久久久久久不卡| 精品一区三区| 免费成人在线观看| 日韩福利在线观看| 美女视频网站久久| 日韩一区二区中文| 日韩视频一区| 日本aⅴ精品一区二区三区| 国产精品午夜一区二区三区| 精品国产乱码久久久久久樱花| 国产一区三区在线播放| 99久久夜色精品国产亚洲1000部| 最新国产拍偷乱拍精品| 日本在线不卡视频| 美腿丝袜在线亚洲一区| 九九色在线视频| 亚洲欧美高清| 国产视频一区二| 久久男人av资源站| 先锋亚洲精品| 国产精品毛片久久久| xxxxx性欧美特大| 久久国产高清| 国产精品66| 欧美日韩在线二区| 亚洲一二av| 国产不卡一区| 丝袜美腿一区二区三区| 国产精品毛片视频| 欧美69视频| 日本午夜免费一区二区| 青青青免费在线视频| 久久午夜精品| 精品视频国内| 亚洲综合三区| 精品一区二区三区的国产在线观看 | 一本综合精品| 国产精品theporn| 日韩午夜av| 欧美aaaaaa午夜精品| 国产精品91一区二区三区| 日韩欧美另类中文字幕| 国产一区二区三区四区五区| 免费在线看一区| 国产成人精品亚洲线观看| 丝袜a∨在线一区二区三区不卡| 久久av网址| 亚洲大全视频| 国产精品日本一区二区三区在线 | 亚洲人成精品久久久| 精品国产一区二区三区2021| 国产精品7m凸凹视频分类| 欧美激情视频一区二区三区免费| 一区二区三区视频免费观看| 欧美视频久久| 日韩一级精品| 欧美xxxx中国| 日本不卡不码高清免费观看| 日韩精品网站| 国产精品对白| 综合日韩在线| 精品欧美久久| 福利精品在线| 久久精品99国产国产精| 国产精品腿扒开做爽爽爽挤奶网站| 精品久久久网| 中文字幕日韩欧美精品高清在线| 日韩欧美一区二区三区在线视频| 涩涩涩久久久成人精品| 日韩免费久久| 国产亚洲欧美日韩精品一区二区三区 | 色综合视频一区二区三区日韩| 久久三级福利| 国产一区二区三区不卡av| 日韩成人午夜精品| 蜜桃91丨九色丨蝌蚪91桃色| 激情欧美亚洲| а√天堂8资源中文在线| 日韩国产高清在线| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲www啪成人一区二区| 国产精品亲子伦av一区二区三区| 亚洲深夜福利| 欧美丝袜一区| 在线精品亚洲欧美日韩国产| 欧美黄色一区| 国产麻豆精品| 日本午夜精品一区二区三区电影 | 久久青青视频| 久久精品国产网站| 国产调教精品| 日本精品一区二区三区在线观看视频| 欧美a级片一区| 欧美色图国产精品| 成人在线免费观看网站| 美女精品久久| 国产欧美欧美| 国产午夜久久av| 日韩精品三区四区| 亚洲三级在线| 视频一区二区三区入口| 黄色成人在线网址| 成人av二区| 婷婷国产精品| 欧美日韩国产免费观看视频| 久久精品国产亚洲夜色av网站| 欧美日韩精品免费观看视欧美高清免费大片 | 日韩有吗在线观看| 免费欧美在线视频| 一区二区国产在线观看| 亚洲另类黄色| 亚洲精品进入| 日韩精品免费观看视频| 日本亚洲最大的色成网站www| 日韩精品三区四区| 日韩美女国产精品| 88久久精品| 久久99蜜桃| 成人午夜在线| 久久精品欧美一区| 在线日韩欧美| 蜜桃视频欧美| 中文日韩欧美| 日韩在线成人| 老牛国内精品亚洲成av人片| 国产不卡av一区二区| 日韩国产在线| 激情五月综合| 伊人久久亚洲| 国产探花一区| 日韩88av| 亚洲午夜精品久久久久久app| 日韩视频在线一区二区三区| 亚洲精品进入| 美女毛片一区二区三区四区最新中文字幕亚洲 | 国产精品久久乐| 国产精品精品国产一区二区| 久久激情婷婷| 日韩精品一级中文字幕精品视频免费观看 | 麻豆精品久久久| 色网在线免费观看| 国产精品普通话对白| 日本成人在线不卡视频| 国产精品亚洲成在人线| 久草免费在线视频| 欧美在线资源| 欧美日韩一区二区三区四区在线观看 | 日韩免费福利视频| 中文亚洲欧美| 久久国产生活片100| аⅴ资源天堂资源库在线| 黄色av日韩| 国产精品最新自拍| 日韩成人亚洲| 丝袜a∨在线一区二区三区不卡| 国产三级精品三级在线观看国产| 成人国产精品一区二区免费麻豆| 999久久久91| 亚洲香蕉久久| 日本一二区不卡| 亚洲欧美日韩视频二区| 国产精品一线天粉嫩av| 激情丁香综合| 国产精品黄色| 狠狠久久婷婷| 欧美精品第一区| 欧美中文一区二区| 欧美日韩xxxx| 欧美成人综合| 97久久超碰| 久久亚洲精品中文字幕蜜潮电影| 日本不卡视频在线观看| 欧美aa在线观看| 日韩在线视频一区二区三区| 成人福利视频| 欧美一区在线观看视频| 1024精品一区二区三区| 国产伦一区二区三区| 欧美 日韩 国产精品免费观看| 国产日韩视频在线| 国产女优一区| 国产精品毛片久久| 日本午夜精品一区二区三区电影| 亚洲视频综合|