本例子就android和php通过httpget协议获取json数据然后的listview上显示。也是把互联网上的资料整合了一下,发出来分享一下,本人已测试过没问题,下面上图看一下!
获取互联网访问权限:<uses-permission android:name="android.permission.INTERNET" />
下面先看 一php代码;
<?php for($i=0;$i<15;$i++){ $json[$i]["ddd"]="asdfas"; $json[$i]["title"]=iconv("gbk","utf-8","中国"); } echo json_encode($json); ?>
java代码如下
这上面都有注释,细看一下。
package List.com.list; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.json.JSONArray; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; public class ListActivity extends Activity { /** Called when the activity is first created. */ public Button b = null; public String s=null; public ListView listview1=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); b = (Button) findViewById(R.id.button1); listview1=(ListView) findViewById(R.id.listview1); b.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub HttpGet httpget = new HttpGet("http://192.168.0.110:80/json/index.php"); HttpResponse httpresponse; try { //执行gethttp提交 httpresponse = new DefaultHttpClient().execute(httpget); if(httpresponse.getStatusLine().getStatusCode()==200){ //如果成功吧返回的数据转换成string类型 String s=EntityUtils.toString(httpresponse.getEntity()); Log.i("JSON",s); //声明一个json数组 JSONArray jsonarray=new JSONArray(s); //声明一个数据组,长度他json数组的长度一样 String[] data=new String[jsonarray.length()]; //循环输出 for(int i=0;i<jsonarray.length();i++){ Log.i("dd",jsonarray.getJSONObject(i).getString("ddd")); Log.i("tt",jsonarray.getJSONObject(i).getString("title")); //把结果存到一个数组里; data[i]=jsonarray.getJSONObject(i).getString("ddd")+jsonarray.getJSONObject(i).getString("title"); } ArrayAdapter<String> arrayadapter=new ArrayAdapter<String>(ListActivity.this, android.R.layout.simple_expandable_list_item_1,data); //设置listview数据; listview1.setAdapter(arrayadapter); } } catch (Exception e) { Log.i("E",e.getMessage().toString()); } } }); } }
本文由 kevin 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。