在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ 百戰(zhàn)經(jīng)典第十三戰(zhàn)-網(wǎng)絡(luò)交互,基于Baas實(shí)現(xiàn)用戶注冊(cè)功能
百戰(zhàn)經(jīng)典第二十戰(zhàn)-ListView中點(diǎn)擊button跳轉(zhuǎn)到撥號(hào)界面實(shí)例
百戰(zhàn)經(jīng)典第十一戰(zhàn)-GridView動(dòng)態(tài)添加Item
百戰(zhàn)經(jīng)典第二戰(zhàn)-好玩的Spinner控件
百戰(zhàn)經(jīng)典第五戰(zhàn)-各種對(duì)話框Dialog精彩薈萃
百戰(zhàn)經(jīng)典第八戰(zhàn)-BitmapFactory.Options對(duì)資源圖片進(jìn)行縮放
百戰(zhàn)經(jīng)典第四戰(zhàn)-玩轉(zhuǎn)ListView
百戰(zhàn)經(jīng)典第十五-竊聽(tīng)風(fēng)云之短信監(jiān)聽(tīng)
前言
百戰(zhàn)經(jīng)典第十四戰(zhàn)-網(wǎng)絡(luò)交互,基于Baas用戶表查詢功能實(shí)現(xiàn)
百戰(zhàn)經(jīng)典第九戰(zhàn)-ViewFlipper實(shí)現(xiàn)幻燈效果
百戰(zhàn)經(jīng)典第三戰(zhàn)-實(shí)現(xiàn)畫(huà)圖板
百戰(zhàn)經(jīng)典第十七戰(zhàn)-基于加速度傳感器的搖一搖功能實(shí)例
百戰(zhàn)經(jīng)典第十戰(zhàn)-LayoutAnimation布局動(dòng)畫(huà)效果
百戰(zhàn)經(jīng)典第七戰(zhàn)-顯示倒計(jì)時(shí)的Button按鈕
百戰(zhàn)經(jīng)典第六戰(zhàn)-Activity啟動(dòng)模式小樣
百戰(zhàn)經(jīng)典第十二戰(zhàn)-GridView動(dòng)態(tài)刪除Item
百戰(zhàn)經(jīng)典第十六戰(zhàn)-圖片或頭像設(shè)置功能
百戰(zhàn)經(jīng)典第十九戰(zhàn)-短信監(jiān)聽(tīng)實(shí)現(xiàn)驗(yàn)證碼自動(dòng)填入
百戰(zhàn)經(jīng)典第一戰(zhàn)—聽(tīng)話的TextView
百戰(zhàn)經(jīng)典第十八戰(zhàn)-自定義控件實(shí)現(xiàn)一鍵清空輸入框
百戰(zhàn)經(jīng)典第十三戰(zhàn)-網(wǎng)絡(luò)交互,基于Baas實(shí)現(xiàn)用戶注冊(cè)功能

百戰(zhàn)經(jīng)典第十三戰(zhàn)-網(wǎng)絡(luò)交互,基于Baas實(shí)現(xiàn)用戶注冊(cè)功能

使用Bmob提供的API進(jìn)行實(shí)戰(zhàn)開(kāi)發(fā),Bmob的簡(jiǎn)介:Bmob平臺(tái)為移動(dòng)應(yīng)用提供了一個(gè)完整的后端解決方案,提供輕量級(jí)的SDK開(kāi)發(fā)包,讓開(kāi)發(fā)者以最小的配置和最簡(jiǎn)單的方式使用Bmob平臺(tái)提供的服務(wù),進(jìn)而完全消除開(kāi)發(fā)者編寫(xiě)服務(wù)器代碼以及維護(hù)服務(wù)器的操作。也就是說(shuō),移動(dòng)開(kāi)發(fā)者不用自己開(kāi)發(fā)服務(wù)器端,完全可以借助Bmob提供的API構(gòu)建一個(gè)服務(wù)器端,實(shí)現(xiàn)移動(dòng)端和服務(wù)器端的交互,屬于云服務(wù)的范疇。

Bmob提供開(kāi)發(fā)API文檔地址為:http://docs.bmob.cn/android/developdoc/index.html?menukey=develop_doc&key=develop_android,讀者也可以百度Bmob,進(jìn)行API的學(xué)習(xí)。本節(jié)將講解其最基本的API和方法。

注冊(cè)Bmob會(huì)員,然后在Bmob官網(wǎng)上下載SDK,然后將jar包拷入工程內(nèi)。

在Bmob網(wǎng)站上創(chuàng)建應(yīng)用,獲取應(yīng)用key,這個(gè)key必須引入到Android項(xiàng)目中。如下圖:

這里寫(xiě)圖片描述

1.main.xml:

<RelativeLayout 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" >  
    <TableLayout  
        android:id="@+id/tl"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content" >  
        <TableRow>  
            <TextView  
                android:id="@+id/tv_name"  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:text="用戶名:" />  
            <EditText  
                android:id="@+id/et_username"  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:minWidth="50dp"  
                android:text="" />  
        </TableRow>  
        <TableRow>  
            <TextView  
                android:id="@+id/tv_password"  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:text="密碼:" />  
            <EditText  
                android:id="@+id/et_password"  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:minWidth="50dp"  
                android:text="" />  
        </TableRow>  
    </TableLayout>  
    <Button  
        android:id="@+id/register"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:layout_below="@+id/tl"  
        android:onClick="submit"  
        android:text="注冊(cè)" />  
</RelativeLayout>

采用了簡(jiǎn)單的表格布局,包括兩個(gè)EditText用于記錄輸入的用戶名和密碼,一個(gè)Button注冊(cè)按鈕。

2.MainActivity.java:

package com.example.logintest;  
  //省略導(dǎo)入包
public class MainActivity extends Activity {  
    private EditText mUserName,mPassword;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        Bmob.initialize(this, "8f3ffb2658d8a3366a70a0b0ca0b71b2");//初始化,第二項(xiàng)為官網(wǎng)創(chuàng)建應(yīng)用的key.  
        mUserName=(EditText) findViewById(R.id.et_username);  
        mPassword=(EditText) findViewById(R.id.et_password);  
    }  
    public void submit(View view){//點(diǎn)擊事件  
        String username=mUserName.getText().toString();  
        String password=mPassword.getText().toString();  
        if(username.equals("")||password.equals("")){  
            Toast.makeText(this, "用戶名或密碼不能為空!", 3).show();  
        }else{  
        User user=new User();  
        user.setUserName(username);  
        user.setUserPassword(password);  
        user.save(MainActivity.this,new SaveListener() {      
            @Override  
            public void onSuccess() {  
                Toast.makeText(MainActivity.this, "注冊(cè)成功!", 3).show();     
            }  
            @Override  
            public void onFailure(int arg0, String arg1) {  
                Toast.makeText(MainActivity.this, "注冊(cè)失??!", 3).show();  
            }  
        });  
      }
    }     
}  

onCreate方法中的 Bmob.initialize(this, "8f3ffb2658d8a3366a70a0b0ca0b71b2");引入了在Bmob官網(wǎng)上創(chuàng)建應(yīng)用時(shí)獲得的key,調(diào)用了Bmob提供的save方法,實(shí)現(xiàn)數(shù)據(jù)的后臺(tái)存儲(chǔ)。不熟悉的同學(xué)可以參考Bmob提供的API文檔。

3.配置權(quán)限:

<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    package="com.example.logintest"  
    android:versionCode="1"  
    android:versionName="1.0" >  
    <uses-sdk  
        android:minSdkVersion="8"  
        android:targetSdkVersion="17" />  
    <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" />  
    <application  
        android:allowBackup="true"  
        android:icon="@drawable/ic_launcher"  
        android:label="@string/app_name"  
        android:theme="@style/AppTheme" >  
        <activity  
            android:name="com.example.logintest.MainActivity"  
            android:label="@string/app_name" >  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  
                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
    </application>  
</manifest> 

主要涉及了一些權(quán)限的配置,包括網(wǎng)絡(luò)權(quán)限、WIFI和網(wǎng)絡(luò)狀態(tài)權(quán)限、寫(xiě)和讀取日志的權(quán)限。

4.javabean.java:

package com.example.logintest;   
import cn.bmob.v3.BmobObject;  
public class User extends BmobObject {  
    private String userPassword;  
    public String getUserPassword() {  
        return userPassword;  
    }  
    public void setUserPassword(String userPassword) {  
        this.userPassword = userPassword;  
    }  
    public String getUserName() {  
        return userName;  
    }  
    public void setUserName(String userName) {  
        this.userName = userName;  
    }  
    private String userName;  
}  

Bmob數(shù)據(jù)交互都是以對(duì)象為基礎(chǔ)的,因此要對(duì)對(duì)象進(jìn)行封裝,以便更好的進(jìn)行操作。

運(yùn)行實(shí)例:

這里寫(xiě)圖片描述

我們看一下Bmob官網(wǎng)的數(shù)據(jù)瀏覽,可以發(fā)現(xiàn)多了一個(gè)User表格,里面有兩條注冊(cè)數(shù)據(jù),注冊(cè)成功啦!

這里寫(xiě)圖片描述

本節(jié)結(jié)合Bmob提供的后臺(tái)云,實(shí)現(xiàn)了網(wǎng)絡(luò)交互,使我們開(kāi)發(fā)的Android應(yīng)用跳脫了單機(jī)的限制,任何能聯(lián)網(wǎng)的人都可以使用我們的應(yīng)用。這里僅是拋磚引玉,Bmob提供了各種各樣豐富的API供我們調(diào)用,發(fā)揮你的想象,可以做出一款非常實(shí)用和漂亮的APP,不妨發(fā)布到應(yīng)用市場(chǎng)中去。