duangouhui0446 2017-04-18 17:27
浏览 76

在android中使用host的jsonArray值

I need to send values of jsonArray to my android code in order to populate a listView. This is my rankingsReader.php file:

<?php
$serverName = "serverName";
$dbUsername = "dbUsername";
$dbPassword = "dbPassword";
$dbName = "dbName";
$tableName = "tableName";

$conn = new mysqli($serverName, $dbUsername, $dbPassword, $dbName);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

try{
    $sqlTopMembers = "SELECT XP, username FROM $tableName ORDER BY XP DESC LIMIT 10";
    if (!($result = $conn->query($sqlTopMembers)))
        die($conn->error);
    if ($result->num_rows) {
        $rankings = [];
        while ($row = $result->fetch_assoc()) {
            $rankings[] = $row;
        }
        echo json_encode(array($tableName => $rankings));
    }
}catch (Exception $e){
    echo "Error ", $e->getMessage();
}

This is the format of my jsonArray:

{"androidlogin":[{"XP":"24","username":"amin39"},{"XP":"24","username":"amin21"},{"XP":"3","username":"amin222"},{"XP":"2","username":"mahdi"},{"XP":"0","username":"amin49"},{"XP":"0","username":"amin20"},{"XP":"0","username":"amin22"},{"XP":"0","username":"Leopard"},{"XP":"0","username":"kjjkjhh"},{"XP":"0","username":"dashagh"}]}

And I want to fill my listView(rankings_list) in android. This is my RankingListActivity.java class:

public class RankingListActivity extends MainPage {
private static final String link = "http://myapp.webhost.com/rankingsReader.php";
Connection rankingConnect;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getLayoutInflater().inflate(R.layout.activity_ranking_list, (FrameLayout) findViewById(R.id.flContent));

    ListView rankingsList = (ListView) findViewById(R.id.rankings_list);
    setRanking();

}
private void setRanking() {
    rankingConnect = new Connection(){
        @Override
        protected ProgressDialog createNewDialog(ProgressDialog dialog) {
            dialog = new ProgressDialog(RankingListActivity.this);
            return dialog;
        }

        @Override
        protected String setUrl() {
            return link;
        }
    };
}}

I have read some about Uri.Builder and json, but I don't know how to use it in my android code. please help me to fill my listView(rankings_list) by values of jsonArray.

  • 写回答

1条回答 默认 最新

  • dongtu9823 2017-04-18 17:32
    关注

    Create a model

    Ranking List Array Model

    public class RankingList {
        ArrayList<RankingList> androidLogin;
        public ArrayList<RankingList> getAndroidLogin() {
            return androidLogin;
        }
    
        public void setAndroidLogin(ArrayList<RankingList> androidLogin) {
            this.androidLogin = androidLogin;
        }
    }
    

    Ranking List Model

    public class RankingList {
        String XP;
        String username;
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
           this.username = username;
        }
    
        public String getXP() {
            return XP;
        }
    
        public void setXP(String XP) {
            this.XP = XP;
        }
    
    }
    

    Create a getter and setter and then use this to fill the data from Gson.toJson();

    Gson.toJson(your_string, RankingListArray.class);
    

    This will do the Job

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站