Bmob后端云失物招领
来源:互联网 发布:sql server 混合模式 编辑:程序博客网 时间:2024/05/06 23:15
最近半个月在忙比赛的事,开发一个校园生活方面的APP,该APP大概分为了几个模块,即时通信,失物招领,快递跟踪,天气查询,地图导航,感觉受益匪浅啊,没怎么更新博客,现在就把我项目上的一个集成的小模块整理下,bmob后端云集成的一个失物招领案例,我们先看看结果和界面演示吧,不说别的,我自己感觉界面看起来蛮清爽。
效果演示
lost界面
found界面
add界面
弹窗界面
顶部下拉框界面
准备阶段
进入bmob后端云网站,注册账号,然后进入控制台,创建应用,进入应用的设置,然后就可以看到了Application ID,这就是我们需要的。网站里面有快速集成的文档
然后下载他的demo,就可以快速开发了,怎么快速集成我就不多少了,文档很详细,如果demo的代码和逻辑看不懂的,可以继续往下面看。
界面代码
下面我就挑几个重要的布局说说
activity_main.xml
<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:background="@color/base_bg" android:orientation="vertical" tools:context=".MainActivity" > <include layout="@layout/include_action_bar" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1.0" > <ListView android:id="@+id/list_lost" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView> <include layout="@layout/include_no_data" /> <include layout="@layout/include_progress" /> </RelativeLayout></LinearLayout>
include_action_bar.xml
这是一个通用的组件,后面蛮多布局文件都用到了
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout_action" android:layout_width="match_parent" android:layout_height="@dimen/base_action_bar_height" android:background="@color/base_actionbar_bg" android:orientation="vertical" > <LinearLayout android:id="@+id/layout_all" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:orientation="horizontal" > <TextView android:id="@+id/tv_lost" style="@style/Smile.TextView._White" android:text="Lost" android:textSize="22sp" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:src="@drawable/btn_arrow_selector" /> </LinearLayout> <Button android:id="@+id/btn_add" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="10dp" android:background="@drawable/btn_add_selector" /></RelativeLayout>
界面是这样的
activity_add.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" android:orientation="vertical" > <include layout="@layout/include_add_top_bar" /> <EditText android:id="@+id/edit_title" android:paddingLeft="10dp" android:hint="@string/title_hint" android:layout_width="match_parent" android:layout_height="@dimen/base_edit_height" android:layout_margin="10dp" android:background="@drawable/input" /> <EditText android:id="@+id/edit_photo" android:layout_width="match_parent" android:layout_height="@dimen/base_edit_height" android:paddingLeft="10dp" android:layout_margin="10dp" android:inputType="phone" android:maxLength="11" android:hint="@string/photo_hint" android:background="@drawable/input" /> <EditText android:id="@+id/edit_describe" android:hint="@string/describe_hint" android:background="@drawable/input" android:paddingLeft="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:minLines="4" /></LinearLayout>
include_add.xml
就是activity_main是由两个布局拼起来的
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout_action" android:layout_width="match_parent" android:layout_height="@dimen/base_action_bar_height" android:background="@color/base_actionbar_bg" android:orientation="vertical" > <Button android:id="@+id/btn_back" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:background="@drawable/btn_back_selector" /> <TextView android:id="@+id/tv_add" style="@style/Smile.TextView._White" android:layout_centerInParent="true" android:text="Lost" android:textSize="22sp" /> <Button android:id="@+id/btn_true" android:layout_width="30dp" android:layout_height="30dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="10dp" android:background="@drawable/btn_true_selector" /></RelativeLayout>
list_item.xml
接下来是main的每个list的布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:background="@color/white" android:orientation="vertical" > <TextView android:id="@+id/tv_title" android:layout_width="match_parent" style="@style/Smile.TextView._Black" android:text="红色钱包" android:singleLine="true" > </TextView> <TextView android:id="@+id/tv_describe" android:layout_marginTop="10dp" android:text="周三早上丢失了红色钱包,在食堂二楼" style="@style/Smile.TextView._Gray" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/tv_title" android:minLines="1" android:maxLines="2" android:textSize="16sp" > </TextView> <TextView android:id="@+id/tv_time" android:layout_marginTop="10dp" android:text="20130240122" style="@style/Smile.TextView._Gray" android:textSize="12sp" android:layout_below="@id/tv_describe" > </TextView> <TextView android:id="@+id/tv_photo" android:layout_marginTop="10dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="3dp" android:textSize="12sp" android:paddingBottom="3dp" android:drawablePadding="5dp" android:layout_alignParentRight="true" style="@style/Smile.TextView._White" android:layout_below="@id/tv_describe" android:background="@color/green" android:text="138024249542" android:drawableLeft="@drawable/icon_photo" > </TextView></RelativeLayout>
pop_device.xml
长按后打电话或发短信的界面布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="240dip" android:layout_height="40dp" android:background="@drawable/device_pop_bg" android:baselineAligned="false" android:orientation="horizontal" > <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1.0" android:gravity="center" android:orientation="horizontal" > <TextView android:id="@+id/tv_pop_edit" style="@style/Smile.TextView._White" android:layout_height="match_parent" android:clickable="true" android:drawableLeft="@drawable/call" android:gravity="center" android:text="Call" android:drawablePadding="10dp" android:textSize="16sp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1.0" android:gravity="center" > <TextView android:id="@+id/tv_pop_delete" style="@style/Smile.TextView._White" android:layout_height="match_parent" android:clickable="true" android:drawableLeft="@drawable/message" android:gravity="center" android:drawablePadding="10dp" android:text="Message" android:textSize="16sp" /> </LinearLayout></LinearLayout>
界面如下
pop_lost.xml
下拉列边,显示lost和found界面
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="240dip" android:layout_height="40dp" android:background="@drawable/device_pop_bg" android:baselineAligned="false" android:orientation="horizontal" > <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1.0" android:gravity="center" android:orientation="horizontal" > <TextView android:id="@+id/tv_pop_edit" style="@style/Smile.TextView._White" android:layout_height="match_parent" android:clickable="true" android:drawableLeft="@drawable/call" android:gravity="center" android:text="Call" android:drawablePadding="10dp" android:textSize="16sp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1.0" android:gravity="center" > <TextView android:id="@+id/tv_pop_delete" style="@style/Smile.TextView._White" android:layout_height="match_parent" android:clickable="true" android:drawableLeft="@drawable/message" android:gravity="center" android:drawablePadding="10dp" android:text="Message" android:textSize="16sp" /> </LinearLayout></LinearLayout>
界面如下
别的界面感觉没啥,不一一例举了。
drawable—各种按钮按下的效果
base_pop_bg_selector.xml
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/btn_true_p" /> <item android:state_focused="true" android:drawable="@drawable/btn_true_p" /> <item android:drawable="@drawable/btn_true_n" /></selector>
btn_add_selector.xml
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/btn_add_p" /> <item android:state_focused="true" android:drawable="@drawable/btn_add_p" /> <item android:drawable="@drawable/btn_add_n" /></selector>
btn_arrow_selector.xml
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/btn_arrow_p" /> <item android:state_focused="true" android:drawable="@drawable/btn_arrow_p" /> <item android:drawable="@drawable/btn_arrow_n" /></selector>
btn_back_selector.xml
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/btn_back_p" /> <item android:state_focused="true" android:drawable="@drawable/btn_back_p" /> <item android:drawable="@drawable/btn_back_n" /></selector>
btn_true_selector.xml
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/btn_true_p" /> <item android:state_focused="true" android:drawable="@drawable/btn_true_p" /> <item android:drawable="@drawable/btn_true_n" /></selector>
logic处理代码
BaseActivity.java
这里定义的BaseActivity.java这个activity,主要是为了方便,是个abstract类(抽象类),放别的activity实现这个抽象类,然后实现里面的四个方法,进行一些初始化的东西
public abstract void initData(); public abstract void initListeners() ; public abstract void initViews(); public abstract void setContentView() ;
AddActivity.java
添加失物
IPopupItemClick.java
长按接口,打电话或发短信
public interface IPopupItemClick { void CallPhone(View v); void SendMessage(View v);}
Found.java
添加招领信息,招领类,就一些基本信息
package cn.aiyuan1996.lost_found.bean;import cn.bmob.v3.BmobObject;/** * @author aiyuan * */public class Found extends BmobObject{ private String title;//标题 private String describe;//描述 private String phone;//联系手机 public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDescribe() { return describe; } public void setDescribe(String describe) { this.describe = describe; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; }}
MainActivity.java
OnClick函数
执行查询
权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.CALL_PHONE"/> <uses-permission android:name="android.permission.SEND_SMS"/>
Bmob云端
下载源码
点我下载源码
2 0
- Bmob后端云失物招领
- Bmob后端云--2
- BMOB后端云
- Bmob失物招领教程即源代码
- Bmob后端云使用心得
- Bmob 后端云服务平台
- Bmob后端云初体验
- Bmob后端云初体验
- Bmob后端云初体验
- Bmob后端云的使用
- 使用Bmob后端云遇到的坑
- 使用Unity连接Bmob后端云
- Bmob移动后端云简单集成
- Bmob后端云的集成与使用
- Bmob后端云的基本使用
- Bmob后端云上传多张图片
- Bmob后端服务器
- Bmob后端云——私人云数据库
- Ubuntu16.04 LTS下安装JDK 1.8
- 6.Linux 运行级别
- 第十四周项目四——矩阵运算(1)矩阵相加
- 小妙招
- html5 流程条
- Bmob后端云失物招领
- 商城开发-用户管理模块(2)
- rocketmq学习笔记 五 源码之rocketmq-store
- 面向对象的五大基本原则
- java 中 native 关键字用法
- rocketmq学习笔记 五 源码之rocketmq-broker
- 二进制中1的个数
- 最大熵
- css图片切割