从PHP服务获取JSON数据并将数据填充到listview Android中

时间:2017-01-08 14:12:22

标签: php android json

我创建了一个Web服务,我想获取json对象并将数据填充到列表视图android中 这是我的PHP代码

$sql_query="SELECT * FROM testtable";
$query=mysqli_query($con,$sql_query);
$rows = array();
while($r = mysqli_fetch_assoc($query)) {
    $rows[] = $r;
}
print json_encode($rows);

这是我的android代码现在我想获取json对象并将数据填充到android的列表视图中

public class MainActivity extends AppCompatActivity {
   ListView listView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void Show(View view){
        String method="show";
        BackgroundTask backgroundTask=new BackgroundTask(this);

    }
  }

这是第二类的代码

    public class BackgroundTask extends AsyncTask<Void,Void ,String> {
        Context ctx;
        String result;

        AlertDialog alertDialog;
        BackgroundTask(Context ctx) {
            this.ctx = ctx;
        }

          protected String doInBackground(Void... Voids) {
    URL url = http://hifzil.com/tayyab/select.php;
    try {
        url = new URL(json_get_settings_url);
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    try {
        HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
        InputStream inputStream = httpURLConnection.getInputStream();
        BufferedReader bufferedReader = new BufferedReader (new InputStreamReader(inputStream));
        StringBuilder stringBuilder = new StringBuilder();
        while((result = bufferedReader.readLine()) != null) {
            stringBuilder.append(result+"\n");
        }
        JSONObject json = new JSONObject(result); 
        bufferedReader.close();
        inputStream.close();
        httpURLConnection.disconnect();
        return stringBuilder.toString().trim();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}

        @Override
        protected void onPreExecute() {
            alertDialog=new AlertDialog.Builder(ctx).create();
        }

        @Override
        protected void onPostExecute(String result) {
            if(result.equals("Saved")){
                Toast.makeText(ctx, result, Toast.LENGTH_LONG).show();

            }
        }

        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);
        }

    }
}

1 个答案:

答案 0 :(得分:0)

我相信你在Android客户端获得了正确的JSON响应,现在按照这些步骤进行操作。

1)使用与JSON响应相同的变量创建Model类

2)创建一个解析方法,将所有JSON响应解析为步骤1的模型类

3)创建适配器并从步骤2模型类中提取适配器的数据,并将适配器分配给listview。