쉽게 갈수 있었다...
웹페이지에서 JSON을 사용하고 있어 android도 그냥 붙여 쓰려고 시작했던게 결국 삽질의 시작이 되었고...
구글링에서 많은 내용들이 나오지만 결국 한글이 깨지는 난관이 있었다.
미국 애들은 utf-8에 민감하지 않은지라 관련 내용이 별로 없고, 있다해도 적용해보면 결국 깨진다...ㅡㅡ;;;
일단 android에는 기본적으로 JSON을 지원한다.
이유는 간단할것이다.
Ajax에서 가장 문제인 XML의 큰 덩치를 Android가 모를리 없기 때문.
org.json.JSONArray, org.json.JSONObject 이넘들의 사용법은 생략한다.
결론은
sendJSONData("http://....", "UTF-8" ,parma);
public HttpResponse sendJSONData(String url, String encoding, Map param){
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
HttpResponse response = null;
try{
HttpPost post = new HttpPost(url);
post.setHeader(HTTP.CONTENT_TYPE,"application/json");
String jsonString = null;
if(param != null){
jsonString = jutil.getJSONObjectString(param);
StringEntity se = new StringEntity(jsonString, encoding);
post.setEntity(se);
}
response = client.execute(post);
}catch(Exception e){
Log.e("Error", "sendJSONData", e);
}
return response;
}
일단 일반적인 POST전송 방식과 약간의 차이는
StringEntity se = new StringEntity(jsonString, encoding);
이거다.
사실 삽질해서 찾은 완벽한 결과물도 이부분이다.
UTF-8을 맞추기 위해 HttpPost, HttpClient이부분만 열심히 건드렸다.
사실 구글링으로 검색된 결과도 이부분에 encoding을 설정하는데 완전 잘못이다.
결국 post.setEntity(se)를 하면서 encoding에 맞춰 바이너리를 생성하는듯하다.
역시 기초가 약한 개발자의 한계로 무한 삽질끝에 알아낸 사실이죠.
XML을 쓰는것보다 가벼워진다는 장점도 있지만 특히 좋은 점은,
결과를 받을때...
XML의 경우 컬럼명을 일일이 알아야 꺼내기 때문에 공통함수에 추출할 컬럼명을 명시하지만(이해가 안가는 분은 패스~~~) JSON은 Iterator함수를 이용해 Map에 바로 담을 수 있다는 장점이있다.
#SCMInno #에스씨엠이노 #WEBDeK
2010년 12월 30일 목요일
android ListView divider
android ListView divider 영역 제거하기
디자인 없이 ListView를 사용하면 모르겠지만 배경을 깔고 쓰면 ListView의 Row간 1Pixel정도의 간격이 생긴다.
이놈의 1Pixel은 웹 할때도 골치더니 여기까지 따라다닌다.
구글링을 하면 여러가지 방법이 나오지만 내가 성공한 확실한 방법은
ListView의 setDivider(null);
layout상의 xml에 속성을 아무리 false를 해도 절대 사라지지 않는다.
여기서 팁하나더.
Activity를 extends ListActivity한 경우. 즉, 자신이 스스로 List인 경우(<ListView android:id="@android:id/list")는
this.getListView().setDivider(null);
이렇게 해주면 된다.
#SCMInno #에스씨엠이노 #WEBDeK
디자인 없이 ListView를 사용하면 모르겠지만 배경을 깔고 쓰면 ListView의 Row간 1Pixel정도의 간격이 생긴다.
이놈의 1Pixel은 웹 할때도 골치더니 여기까지 따라다닌다.
구글링을 하면 여러가지 방법이 나오지만 내가 성공한 확실한 방법은
ListView의 setDivider(null);
layout상의 xml에 속성을 아무리 false를 해도 절대 사라지지 않는다.
여기서 팁하나더.
Activity를 extends ListActivity한 경우. 즉, 자신이 스스로 List인 경우(<ListView android:id="@android:id/list")는
this.getListView().setDivider(null);
이렇게 해주면 된다.
#SCMInno #에스씨엠이노 #WEBDeK
Android 개발을 시작하다...
만 2년전 개발을 그만하겠다고 PM의 길을 들어섰건만...
다시 또 개발이다.
나름 새로운 개발을 시작하니 재미도 있군요...ㅋㅋ
Android 개발을 쉽게 적응하는데 Web, Swing, Network, Thread를 접해본 경험이 주요했다.
요즘처럼 학원에서 Web위주로만 교육받은 개발자는 처음에 접근하는데 어려움이 있을듯...
머 그래도 이바닦에 않되는건 없다.
Android에 적응하면 아이폰도 시작해야 한다는...ㅡㅡ;;;
Android는 정작 중요한 기술은 검색해도 잘 나오지 않고,
나온다 하더라도 적용하면 잘 않된다.
여러가지 책들은 특정 부분을 조금씩 가져다 쓰기는 좋은나 하나의 책만으로는 부족하다.
그래서 JAVA개발할때 절대 하지 않던 글쓰기를 한번 해볼까 한다.
얼마나 갈지는...ㅋㅋㅋ
#SCMInno #에스씨엠이노 #WEBDeK
다시 또 개발이다.
나름 새로운 개발을 시작하니 재미도 있군요...ㅋㅋ
Android 개발을 쉽게 적응하는데 Web, Swing, Network, Thread를 접해본 경험이 주요했다.
요즘처럼 학원에서 Web위주로만 교육받은 개발자는 처음에 접근하는데 어려움이 있을듯...
머 그래도 이바닦에 않되는건 없다.
Android에 적응하면 아이폰도 시작해야 한다는...ㅡㅡ;;;
Android는 정작 중요한 기술은 검색해도 잘 나오지 않고,
나온다 하더라도 적용하면 잘 않된다.
여러가지 책들은 특정 부분을 조금씩 가져다 쓰기는 좋은나 하나의 책만으로는 부족하다.
그래서 JAVA개발할때 절대 하지 않던 글쓰기를 한번 해볼까 한다.
얼마나 갈지는...ㅋㅋㅋ
#SCMInno #에스씨엠이노 #WEBDeK
피드 구독하기:
글 (Atom)