Skip to content

Commit 06512f5

Browse files
committed
hzuapps#6 hzuapps#40 第六次作业
1 parent fe586a2 commit 06512f5

File tree

2 files changed

+107
-0
lines changed

2 files changed

+107
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
package edu.hzuapps.androidlabs.homeworks.net1414080903105;
2+
3+
import android.os.Bundle;
4+
import android.os.Handler;
5+
import android.os.Message;
6+
import android.support.v7.app.AppCompatActivity;
7+
import android.widget.TextView;
8+
9+
import org.json.JSONArray;
10+
import org.json.JSONException;
11+
import org.json.JSONObject;
12+
13+
import java.io.IOException;
14+
import java.io.InputStream;
15+
import java.net.HttpURLConnection;
16+
import java.net.MalformedURLException;
17+
import java.net.URL;
18+
19+
import edu.hzuapps.androidlabs.R;
20+
21+
public class JsonNet1414080903105Activity extends AppCompatActivity {
22+
23+
TextView tv;
24+
25+
Handler handler=new Handler(){
26+
@Override
27+
public void handleMessage(Message msg) {
28+
super.handleMessage(msg);
29+
String a= parseJson((String) msg.obj);
30+
tv.setText(a);
31+
}
32+
};
33+
34+
@Override
35+
protected void onCreate(Bundle savedInstanceState) {
36+
super.onCreate(savedInstanceState);
37+
setContentView(R.layout.activity_json_net1414080903105);
38+
tv= (TextView) findViewById(R.id.tv_json);
39+
new Thread(){
40+
@Override
41+
public void run() {
42+
super.run();
43+
String a=a("https://raw.githubusercontent.com/zhangdixi/android-labs-2017" +
44+
"/master/AndroidLabs/app/src/main/res/values/ds.json");
45+
Message msg=handler.obtainMessage();
46+
msg.obj=a;
47+
handler.sendMessage(msg);
48+
}
49+
}.start();
50+
}
51+
52+
public String a(String u) {
53+
try {
54+
URL url = new URL(u);
55+
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
56+
conn.setRequestMethod("GET");
57+
conn.setConnectTimeout(5000);
58+
InputStream is = conn.getInputStream();
59+
byte[] b = new byte[1024];
60+
StringBuilder sb = new StringBuilder();
61+
String a;
62+
int len;
63+
while ((len=is.read(b)) != -1) {
64+
a=new String(b,0,len);
65+
sb.append(a);
66+
}
67+
return sb.toString();
68+
} catch (MalformedURLException e) {
69+
e.printStackTrace();
70+
} catch (IOException e) {
71+
e.printStackTrace();
72+
}
73+
return "";
74+
}
75+
76+
public String parseJson(String data){
77+
StringBuilder sb=new StringBuilder();
78+
try {
79+
JSONArray jsonArray=new JSONArray(data);
80+
for (int i=0;i<jsonArray.length();i++){
81+
JSONObject object=jsonArray.getJSONObject(i);
82+
sb.append("姓名:"+object.getString("name"));
83+
sb.append("\n\n");
84+
sb.append("工作:"+object.getString("job"));
85+
sb.append("\n\n");
86+
sb.append(object.getString("sex"));
87+
sb.append("\n\n");
88+
sb.append(object.getString("age"));
89+
}
90+
} catch (JSONException e) {
91+
e.printStackTrace();
92+
}
93+
return sb.toString();
94+
}
95+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:orientation="vertical" android:layout_width="match_parent"
4+
android:layout_height="match_parent">
5+
6+
<TextView
7+
android:padding="15dp"
8+
android:layout_width="match_parent"
9+
android:layout_height="match_parent"
10+
android:id="@+id/tv_json"/>
11+
12+
</LinearLayout>

0 commit comments

Comments
 (0)