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

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

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

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

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

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

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

這里寫圖片描述

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="注冊" />  
</RelativeLayout>

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

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");//初始化,第二項為官網(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){//點擊事件  
        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, "注冊成功!", 3).show();     
            }  
            @Override  
            public void onFailure(int arg0, String arg1) {  
                Toast.makeText(MainActivity.this, "注冊失??!", 3).show();  
            }  
        });  
      }
    }     
}  

onCreate方法中的 Bmob.initialize(this, "8f3ffb2658d8a3366a70a0b0ca0b71b2");引入了在Bmob官網(wǎng)上創(chuàng)建應(yīng)用時獲得的key,調(diào)用了Bmob提供的save方法,實現(xiàn)數(shù)據(jù)的后臺存儲。不熟悉的同學(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)限、寫和讀取日志的權(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ù)交互都是以對象為基礎(chǔ)的,因此要對對象進(jìn)行封裝,以便更好的進(jìn)行操作。

運行實例:

這里寫圖片描述

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

這里寫圖片描述

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