編輯:關於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
Type listType = new TypeToken
}.getType();
Gson gson = new Gson();
LinkedList
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
/** 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文件中設定訪問網絡的權限:
Android加載Gif動畫如何實現?相信大家都很好奇,本文就為大家揭曉,內容如下<?xml version=1.0 encoding=utf-8?
一、 Android Studio配置SVN Android Studio關聯配置SVN很簡單,在Settings裡面,找到Version Control->Sub
先來點閒言碎語,前段時間我有一段感悟:Android開發,本身並不是一個可以走得多遠的方向,它只是一個平台,提供了許多封裝好的API,讓大家能夠快速開發出針對特定業務的應
一、介紹這是新浪微博的一個帖子,剛好包括了話題、表情、@好友三種顯示。顯示方法上篇已經闡述了,就是使用SpannableString。這篇主要介紹顯示這種帖子的解析工具類