package
com.example.homework.step09_sendreceiver2;
import
android.content.Intent;
import
android.os.StrictMode;
import
android.support.v7.app.AppCompatActivity;
import
android.os.Bundle;
import
android.util.Log;
import
android.view.Menu;
import
android.view.MenuInflater;
import
android.view.MenuItem;
import
android.widget.ArrayAdapter;
import
android.widget.ListView;
import
org.apache.http.HttpResponse;
import
org.apache.http.client.HttpClient;
import
org.apache.http.client.methods.HttpGet;
import
org.apache.http.impl.client.HttpClientBuilder;
import
org.json.JSONArray;
import
org.json.JSONException;
import
org.json.JSONObject;
import
java.io.BufferedReader;
import
java.io.InputStreamReader;
public
class
MainActivity
extends
AppCompatActivity {
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StrictMode.ThreadPolicy policy =
new
StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
setTitle(
"데이터베이스를 연동한 ListView"
);
ListView listView=(ListView)findViewById(R.id.listView);
String result=SendByHttp();
String[][] parseData=jsonParserList(result);
String[] member=
new
String[parseData.length];
for
(
int
i=
0
; i<member.length; i++) {
member[i]=
"이름:"
+ parseData[i][
0
]
+
" 나이:"
+ parseData[i][
1
]
+
" 점수:"
+ parseData[i][
2
];
}
ArrayAdapter<String> adapter=
new
ArrayAdapter<String>(
this
,
android.R.layout.simple_list_item_1, member);
listView.setAdapter(adapter);
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
super
.onCreateOptionsMenu(menu);
MenuInflater menuInflater=getMenuInflater();
menuInflater.inflate(R.menu.menu1, menu);
return
true
;
}
@Override
public
boolean
onOptionsItemSelected(MenuItem item) {
switch
(item.getItemId())
{
case
R.id.listAll:
Intent intent1=
new
Intent(getApplicationContext(), MainActivity.
class
);
startActivity(intent1);
break
;
case
R.id.insert:
Intent intent2=
new
Intent(getApplicationContext(), InsertActivity.
class
);
startActivity(intent2);
break
;
}
return
false
;
}
private
String SendByHttp() {
HttpClient client = HttpClientBuilder.create().build();
HttpGet get=
new
HttpGet(strUrl);
try
{
HttpResponse response = client.execute(get);
BufferedReader bufreader =
new
BufferedReader(
new
InputStreamReader(response.getEntity().getContent(),
"utf-8"
));
String line =
null
;
String result =
""
;
while
((line = bufreader.readLine()) !=
null
) {
result += line;
}
return
result;
}
catch
(Exception e) {
e.printStackTrace();
client.getConnectionManager().shutdown();
return
""
;
}
}
private
String[][] jsonParserList(String pRecvServerPage) {
Log.i(
"서버에서 받은 전체 내용 : "
, pRecvServerPage);
try
{
JSONObject json =
new
JSONObject(pRecvServerPage);
JSONArray jArr = json.getJSONArray(
"List"
);
String[] jsonName = {
"name"
,
"age"
,
"score"
};
String[][] parseredData =
new
String[jArr.length()][jsonName.length];
for
(
int
i =
0
; i < jArr.length(); i++) {
json = jArr.getJSONObject(i);
for
(
int
j =
0
; j < jsonName.length; j++) {
parseredData[i][j] = json.getString(jsonName[j]);
}
}
for
(
int
i =
0
; i < parseredData.length; i++) {
Log.i(
"JSON을 분석한 데이터 "
+ i +
" : "
, parseredData[i][
0
]);
Log.i(
"JSON을 분석한 데이터 "
+ i +
" : "
, parseredData[i][
1
]);
Log.i(
"JSON을 분석한 데이터 "
+ i +
" : "
, parseredData[i][
2
]);
}
return
parseredData;
}
catch
(JSONException e) {
e.printStackTrace();
return
null
;
}
}
}