안녕하세요.
제가 JSONArray를 이용하여 php 파일을 파싱후 뿌려줄때, textview로는 뿌려지더라구요
근대 listview로 뿌려줘야겟다 싶어 ListView 예제소스를 찾아 공부한후
소스를 한번짜보았습니다.
package kr.or.ketti;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class JSONArrayTest extends ListActivity {
private ArrayList<String> list;
private ArrayAdapter<String> adapter;
private TextView mResult;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mResult = (TextView)findViewById(R.id.result);
list = new ArrayList<String>();
Button btn = (Button)findViewById(R.id.parse);
btn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// 웹에서 Json 형식으로 만들어진 php문서 받아옴
String Json = DownloadHtml("http://203.241.246.113/convert_jason.php");
Log.i("Json : " , Json);
try{
String Result = "sss";
JSONArray ja = new JSONArray(Json);
for(int j=0; j<ja.length(); j++){
JSONObject order = ja.getJSONObject(j);
Result += "번호 : " + order.getInt("uid") + " " +
"제목 : " + order.getString("title") + " " +
"글 : " + order.getString("content") + " " +
"이미지 : " + order.getString("link") + "\n\n ";
}
list.add(mResult.getText().toString());
mResult.setText(Result);
adapter.notifyDataSetChanged();
// mResult.setText(Result);
} catch(JSONException e) {
Toast.makeText(v.getContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
}
});
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, list);
setListAdapter(adapter);
}
String DownloadHtml(String addr){
StringBuilder jsonHtml = new StringBuilder();
try{
// 연결 url 설정
URL url = new URL(addr);
// 커넥션 객체 생성
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
// 연결되었으면.
if(conn != null){
conn.setConnectTimeout(10000);
conn.setUseCaches(false);
// 연결되었음 코드가 리턴되면.
if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "EUC-KR"));
for(;;){
// 웹상에 보여지는 텍스트를 라인단위로 읽어 저장.
String line = br.readLine();
if(line == null) break;
// 저장된 텍스트 라인을 jsonHtml에 붙여넣음
jsonHtml.append(line + "\n");
}
br.close();
}
conn.disconnect();
}
} catch(Exception ex){
Toast.makeText(this, ex.getMessage(), Toast.LENGTH_LONG).show();
}
return jsonHtml.toString();
}
}
DDMS를 이용하여 보니
tag는 global message 내용이Default buffer size used in BufferedReader constructor 이렇게뜨면서
결과값이 표시되지않는대 어떡해야 할까요 ㅜㅜ