在线观看不卡亚洲电影_亚洲妓女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)

接著上一篇,我們注冊了幾個用戶,用戶表如下:

這里寫圖片描述

下面用ListView將表中數(shù)據(jù)顯示出來吧!

首先看一下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" >  
    <Button  
        android:id="@+id/btn_query"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:text="查詢所有用戶" />  
    <ListView  
        android:id="@+id/lv_users"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:layout_below="@+id/btn_query" >  
    </ListView>  
</RelativeLayout>  

定義了一個按鈕用于網(wǎng)絡(luò)請求,ListView顯示請求返回的信息。

然后MainActivity.java:

package com.example.listviewdemo;  

import java.util.List;  
//省略導(dǎo)入包
public class MainActivity extends Activity {  
    private Button mButtonQuery;  
    private ListView mListViewUsers;  
    private ListViewAdapter adapter;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        Bmob.initialize(this, "8f3ffb2658d8a3366a70a0b0ca0b71b2");// 初始化Bmob  
        mButtonQuery = (Button) findViewById(R.id.btn_query);  
        mListViewUsers = (ListView) findViewById(R.id.lv_users);  
        mButtonQuery.setOnClickListener(new OnClickListenerImpl());  
    }  
    private class OnClickListenerImpl implements OnClickListener {  
        @Override  
        public void onClick(View v) {  
            BmobQuery<User> query = new BmobQuery<User>();// 查詢類  
            query.findObjects(MainActivity.this, new FindListener<User>() {  
                @Override  
                public void onSuccess(List<User> list) {  
                    adapter = new ListViewAdapter(MainActivity.this, list);// 實例化  
                    mListViewUsers.setAdapter(adapter);  
                }  
                @Override  
                public void onError(int arg0, String arg1) {  
                    Toast.makeText(MainActivity.this, "查詢失?。?, 3).show();  
                }  
            });  
        }  
    }  
} 

這里用到了BmobQuery查詢類,實例化生成對象query,調(diào)用findObjects方法,覆寫里面的onSuccess(請求成功)和onError(請求失敗方法)。

ListViewAdapter.java:

package com.example.listviewdemo;  
//省略導(dǎo)入包 
public class ListViewAdapter extends BaseAdapter {  
    private Context context;  
    private List<User> list;  
    private LayoutInflater inflater;  
    public ListViewAdapter(Context context, List<User> list) {  
        this.context = context;  
        this.list = list;  
        inflater = LayoutInflater.from(context);  
    }  
    @Override  
    public int getCount() {  
        return list.size();  
    }  
    @Override  
    public Object getItem(int position) {  
        return list.get(position);  
    }  
    @Override  
    public long getItemId(int position) {  
        return position;  
    }  
    @Override  
    public View getView(int position, View convertView, ViewGroup parent) {  
        ViewHolder viewHolder = null;  
        if (convertView == null) {  
            viewHolder = new ViewHolder();  
            convertView = inflater.inflate(R.layout.listview_item, null);  
            viewHolder.tv_idTextView = (TextView) convertView  
                    .findViewById(R.id.tv_id);  
            viewHolder.tv_usernameTextView = (TextView) convertView  
                    .findViewById(R.id.tv_username);  
            viewHolder.tv_userPasswordTextView = (TextView) convertView  
                    .findViewById(R.id.tv_userpassword);  
            viewHolder.tv_timeTextView = (TextView) convertView  
                    .findViewById(R.id.tv_time);  
            convertView.setTag(viewHolder);  
        } else {  
            viewHolder = (ViewHolder) convertView.getTag();  
        }  
        viewHolder.tv_idTextView  
                .setText(list.get(position).getObjectId() + "|");  
        viewHolder.tv_usernameTextView.setText(list.get(position).getUserName()  
                + "|");  
        viewHolder.tv_userPasswordTextView.setText(list.get(position)  
                .getUserPassword() + "|");  
        viewHolder.tv_timeTextView.setText(list.get(position).getCreatedAt());  
        return convertView;  
    }  
    class ViewHolder {  
        private TextView tv_idTextView;  
        private TextView tv_usernameTextView;  
        private TextView tv_userPasswordTextView;  
        private TextView tv_timeTextView;  
    }  
}

目前為止,適配器類的編寫大家都應(yīng)該很熟悉了,不用再解釋。

list_item.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="horizontal" >  
    <TextView  
        android:id="@+id/tv_id"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" />  
    <TextView  
        android:id="@+id/tv_username"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" />  
    <TextView  
        android:id="@+id/tv_userpassword"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" />  
    <TextView  
        android:id="@+id/tv_time"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" />  
</LinearLayout>  

User.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;  
}  

最后配置文件:

<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    package="com.example.listviewdemo"  
    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.listviewdemo.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>  

運行實例:

這里寫圖片描述

所有用戶數(shù)據(jù)都被請求到本地了。