本例子就android和php通过httpget协议获取json数据然后的listview上显示。也是把互联网上的资料整合了一下,发出来分享一下,本人已测试过没问题,下面上图看一下!

 

 未标题-1.jpg

获取互联网访问权限:<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());

				}

			}
		});
		
		
		
	}
}

 

 

标签: json数据获取

添加新评论