android:對請求獲得的數據進行分頁

第一頁 0 =60x0,按id排序後第0個向後再索引60個,也就是返回0-60這中間的數據,
第二頁 60=60x1,返回60-120這中間的數據
第三頁 120=60x2,返回120-180這中間的數據
第四頁 180=60x3,返回180-240這中間的數據

能理解麼???

這個是請求例如對vodclass=恐怖類型,vodpage上面對應的[(60*(2-1)] = 60就是表示的是第二頁

http://192.168.1.102:2020/typepage.php?vodclass=恐怖&vodpage=60

我寫了一個php接口可以參考一下

<?php
header("content-Type: text/html; charset=utf-8");//字符編碼設置
$servername = "localhost";
$username = "owldatabase";
$password = "ywl123456";
$dbname = "owldatabase";
 //http://192.168.1.102:2020/typepage.php?vodclass=恐怖&vodpage=60
 //分類
$vodclass = $_GET['vodclass'];
//分頁
$vodpage = $_GET['vodpage'];

// 創建連接
$conn =new mysqli($servername, $username, $password, $dbname);
// 檢測連接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
 
$sql = "
SELECT 
`vod_id`,`vod_name`,`vod_class`,`vod_author`,`vod_director`,`vod_blurb`,`vod_area`,`vod_lang`,`vod_year`,`vod_score`,FROM_UNIXTIME(`vod_time_add`) as `vod_add_time`,`vod_pic`,`vod_play_url`
FROM `mac_vod`
WHERE `vod_class` like '%$vodclass%'
and  `vod_status` = 1
 order by `vod_id` limit $vodpage,60
";
$result = $conn->query($sql);
 //SELECT * FROM `mac_vod`
$arr = array();
// 輸出每行數據
while($row = $result-> fetch_assoc()) {
    $count=count($row);//不能在循環語句中,由於每次刪除row數組長度都減小
    for($i=0;$i<$count;$i++){
        unset($row[$i]);//刪除冗餘數據
    }
    array_push($arr,$row);
 
}
//print_r($arr);
echo json_encode($arr,JSON_UNESCAPED_UNICODE);//json編碼
$conn->close();
 
?>

安卓方面的代碼應該不用多說吧~‘

就簡單說一下,

1.獲取這個類型有多少個數據,我打個比方,是1789個
2.1789/60=29.81667 也就是說有30
3.做一個頁碼的滑動導航,然後做個循環遍歷1至30到這個導航裏面
4.添加頁碼的點擊事件,item有默認的點擊,調用那個也可以,他是從0開始的,比如你點擊了“第一頁”,他就有可能是第0項,點擊後重新請求數據就可以(記得刷新列表),比如點擊的“第5頁”,就當他是第4項,就這樣請求
http://192.168.1.102:2020/typepage.php?vodclass=恐怖&vodpage=60*4
或者
你直接獲取item上的阿拉伯數字,這樣計算**(第5頁-1)*60*這樣返回的就是第5頁了
http://192.168.1.102:2020/typepage.php?vodclass=恐怖&vodpage=60(5-1)

當然我只是案例

    private LayPage_C page;
    public void laylist(String count){
        //根據每頁多少數據分出多少頁
        int icount = Integer.parseInt(count);
        int pagecount = icount/60;
        //pagecount分出頁數如30頁
        //將頁數循環遍歷到subpage實體類
        //可以給message執行

        for(int pa=1;pa<=pagecount;pa++)
        {
            page = new LayPage_C();
            page.setPagename("第"+pa+"頁");
            page.setPagecount(pa*60);//60爲1頁
            layPageCList.add(page);
            //Log.d("1111111111", "pagename" + pa+"頁");

        }
        Message msg = new Message();
        msg.what = 9;
        handler.sendMessage(msg);//用activity中的handler發送消息

        //Log.d("1111111111", "pagecountpagecountpagecountpagecount=== " + pagecount);

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章