我创建了一个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);
}
}
}
答案 0 :(得分:0)
我相信你在Android客户端获得了正确的JSON响应,现在按照这些步骤进行操作。
1)使用与JSON响应相同的变量创建Model类
2)创建一个解析方法,将所有JSON响应解析为步骤1的模型类
3)创建适配器并从步骤2模型类中提取适配器的数据,并将适配器分配给listview。