Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 數據網絡存儲

android 數據網絡存儲

編輯:關於Android編程

在實際的項目開發過程中(應用的APP),我們用網絡存儲的地方比較多。今天我們一起來談談網絡存儲的功能。什麼是網絡存儲?就是我們的數據存儲在一個服務器上,app客戶端類似一個URL地方的方式訪問數據;在得到數據後我們可以進行解析。一般我們都會用Webservice的形式進行數據的交互。

程序在編碼的時候,需要加入java.net.*,Android.net.* 這個兩個包(不然數據不能解析);網絡上有好多的例子,例如天氣的預報APP。我們就不講這個了,今天呢我們講講從webservice 中獲取數據並用Json格式解析並顯示。Android系統從3.0開始包括Json的包,若以下版本自行需下載 ,地址為:http://code.google.com/p/google-gson/

代碼1 HttpUtils.java

傳入一個url地址(webservice的地址),從服務器端獲取數據。一般獲取到的數據都是一個字符串。

public class HttpUtils { //從服務器端下載到Json數據,也就是個字符串


public static String getData(String url) throws Exception {


StringBuilder sb = new StringBuilder();


HttpClient httpClient = new DefaultHttpClient();


HttpGet httpGet = new HttpGet(url);


HttpResponse httpResponse = httpClient.execute(httpGet);


HttpEntity httpEntity = httpResponse.getEntity();


if (httpEntity != null) {


InputStream instream = httpEntity.getContent();


BufferedReader reader = new BufferedReader(new InputStreamReader(


instream));


String line = null;


while ((line = reader.readLine()) != null) {


sb.append(line);


}


return sb.toString();


}


return null;


}


代碼2 JsonUtils.java

進行Json數據的解析

public class JsonUtils {


public static List parseStudentFromJson(String data) {


Type listType = new TypeToken>() {


}.getType();


Gson gson = new Gson();


LinkedList list = gson.fromJson(data, listType);


return list;


}


}


代碼3 Student.java

實際上就是定義一個JavaBean對象

public class Student {


private String name;


private int age;


private String id;





public Student() {


super();


}





public Student(String name, int age, String id) {


super();


this.name = name;


this.age = age;


this.id = id;


}





public String getName() {


return name;


}





public void setName(String name) {


this.name = name;


}





public int getAge() {


return age;


}





public void setAge(int age) {


this.age = age;


}





public String getId() {


return id;


}





public void setId(String id) {


this.id = id;


}





}

到這裡代碼基本上完成了,那麼我們在Android的應用程序中如何使用呢?

public class MainActivity extends Activity {


private TextView textView;


private List list;





/** Called when the activity is first created. */


@Override


public void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);


setContentView(R.layout.main);


textView = (TextView) findViewById(R.id.textView);


String data = null;


try {


data = HttpUtils


.getData("http://127.0.0.1:8080/JsonTest/getStudent");


} catch (Exception e) {


e.printStackTrace();


}


String result = "";


list = JsonUtils.parseStudentFromJson(data);


for (Student s : list) {


result += "name: " + s.getName() + " " + "age: " + s.getAge()


+ " " + "id: " + s.getId() + "\n";


}


textView.setText(result);


}


}


最後運行的效果怎麼樣呢,來看看(可以按照上面代碼,大家動手做個demo):

\

最後在補充一句,可能有同學按照以上代碼沒有運行成功。哈哈,要在AndroidManifest.xml文件中設定訪問網絡的權限:

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved