보물창고/Programming2011.08.24 23:01








안드로이드 get방식 데이터 u
rl 전달 한글 깨짐 인코딩 설정 방법 (안드로이드 URL 호출, 쓰기, jsp, android, euc-kr, utf-8, 디코딩, encode, decode, servlet, 서블릿)

안드로이드에서 GET방식 URL에 데이터를 쓸때
데이터를 전달받은 jsp 서블릿에서 받은 데이터중 한글이 깨지는 형상 해결 방법 입니다
ex) �������� ,  ???? ,  ã�±ã�·ã�´ã��ã�¹ 등등..








 

String contentText"일상";

String contentText2 = java.net.URLEncoder.encode(new String(contentText.getBytes("UTF-8")));

String getSql = "http://서블릿 주소?tn=neck_cold&con="+contentText2; 
                        

URL connect = new URL(getSql);

URLConnection urlConn = connect.openConnection();

HttpURLConnection httpCon = (HttpURLConnection)urlConn;

BufferedReader in = new BufferedReader(new InputStreamReader(httpCon.getInputStream()));

in.close();

 
전달 하는쪽 소스 입니다

밑줄 그은 부분이 해결 방법 입니다
contentText문자열에 인코딩을 해서 다시 스트링을 담게 됩니다 







 

response.setCharacterEncoding("EUC-kr");

String tableName = new String(request.getParameter("tn").getBytes("8859_1"),"UTF-8");

 
받는쪽 소스 코드 입니다 (서블릿)

첫번재줄 euc-kr은 웹브라우져에 출력할때 영향을 미칩니다
두번째줄 getByte이후는 db에 쓸때 영향을 미칩니다







이클립스 window -> Preferences => Workspace -> Text File encoding 을 손을 많이 댓었는데
default값 MS949로 해도 문제 없이 돌아갑니다 
 

 




참고한 블로그
http://ksprg.cafe24.com/?p=904
http://www.javadocexamples.com/java/net/URLEncoder/encode(String%20s,String%20enc).html




신고





Posted by 파란물
보물창고/Programming2011.08.15 18:55





안드로이드 ArrayAdapter사용 리스트뷰 구성시  Activity를 상속하면 onListItemClick 호출하기 어려움 (android, ListView 구현,  addFooterView, addHeaderView, 더보기 버튼 )








안드로이드 프로젝트를 하면서 UI 구현중에 어려웠던 부분을 정리해서 다른분들이 필요하실까 정리했습니다

포스팅 가장 아래에 제가 구현한 안드로이드 프로젝트 전체를 파일 첨부 했습니다
공부하면서 구현중에 있기 대문에 지저분한 주석이 모두 담겨 있습니다
필요하신 분들 소스 참고하세요! ^^










Activity를 상속하고 custom ArrayAdapter를 만들어서 리스트뷰(ListView)로 했을 경우 UI구현하는데 많은 제약이 있는거 같습니다

제약
 - addFooterView, addHeaderViewf를 달지 못합니다 (헤더,푸터 뷰)
 - 리스트뷰 안에 버튼이 들어간 경우 포커스가 버튼에 있어 리스트가 클릭되지 않습니다
    ( onListItemClick 함수가 호출 되지 않습니다 )

 Activity를 사용해서 가능하다는 글도 구글링에서 본거 같은데 관련 예제를 못찾아서 결국은 ListActivity를 사용했습니다
 속직히 리스트 액티비티를 사용하면 안될 이유가 없었지만 제가 인터넷에서 찾은 예제가 Activity를 사용하고 있어서 ListActivity로 바꾸는게 쉽지 않았습니다 하지만 리스트를 클릭하기 위해서 자료찾아보면서 바꿨습니다









Activity를 상속했을때와 ListActivity를 사용했을대 xml부분이 달라집니다 (빨간 글씨 참고)


Activity 상속시

<ListView

       android:id="@+id/list"

       android:layout_width="fill_parent"

       android:layout_height="fill_parent"/>

 

ListActivity 상속시

<ListView

       android:id="@id/android:list"

       android:layout_width="fill_parent"

       android:layout_height="fill_parent"/>
 

 


 






그외에 java부분에서도 달라집니다 (기본적인 코딩시)

Activity 상속시 함수 사용

  myListView.setAdapter(adapter);

 

ListActivity 상속시

  setListAdapter(adapter);

 

  


 


 


 

ListActivity 를 사용할때는 ListView를 선언해서 사용할 필요가 없습니다
그래서 위에 java코딩부분처럼  
setListAdapter()를 바로 사용할 수있습니다
이런경우 ListView.~~~ 로 접근해서 해더 푸터를 달아야 하는데 달 수 없게 됩니다
그러나 코딩으로 이 부분을 해결 할 수 있습니다









ListActivity에서 ListView를 선언해서 사용하는 방법입니다 
 
myListView = getListView();
 
 ListView에 getListView()를 담아주면 ListActivity에서 Listview를 선언해서 사용할 수 있습니다











 
파일 첨부한 프로젝트의 스샷 입니다

리스트뷰에 더보기 버튼이 구현되어 있습니다
테스트한 소스이기 때문에 좀 지저분하지만 필요하신 분들 받아서 참고 하세요~









 

dongProject2.zip

 



신고





Posted by 파란물