화면을 전환하면 이상하게 데이터를 Reload를 하길래 확인해보니
onCreate를 다시 호출하는것으로 판단되더군요. 헐.
문제는 대부분 onCreate에서 데이터의 로딩을 한다는것이죠.

간단하게 아래와 같은 방법으로 reload를 방지할 수 있습니다.

AndroidManifest.xml 파일
<activity android:name=".boarddetail.BoardDetailActivity" android:label="@string/app_name"
             android:configChanges="orientation|keyboard" android:theme="@style/WindowTitleBar">
        </activity>
orientation이 화면 전환 이고.. keyboard가 키보드가 튀어 나올때의 옵션인것 같습니다. "|" 기호가 있는걸 확인하세요.
오.. 이거 옵션좋군요.
저작자 표시 비영리
신고

댓글을 달아 주세요

ListView에 WebView를 사용하면 해당 WebView에는 클릭 이벤트가 먹지 않습니다. ㅜㅜ

그래서 아래와 같은 방법을 사용하시면 클릭이벤트가 먹습니다.
<WebView android:layout_width="70dp" android:layout_height="wrap_content" 
            android:scrollbars="none"  android:clickable="false" android:focusable="false"
            android:id="@+id/board_item_row_boardwriter_webview" android:layout_marginRight="5dp"/>
헉..
그래도 먹지 않습니다.
focusable이 false로 되어 있으면 되는데.. 실제로는 먹지 않아서 소스에서도 한줄 추가해 주셔야 합니다.
WebView webView = rowHolder.getBoardWriterWebView();
webView.setVisibility(View.VISIBLE);
webView.setFocusable(false);
webView.loadDataWithBaseURL(null, p.getWriter(), "text/html","UTF-8", null);
오.. 이제 되는군요.
이러면 Webview 영역을 클릭하여도 ListView의 클릭이벤트가 먹네요..

요약 : 안드로이드 특징인지 ListView 안에 클릭 가능한 객체(WebView나 버튼 등)가 존재하면
ListView 를 클릭했을때 이벤트를 호출하지 않습니다. Button이나 WebView가 해당 이벤트를 먼저 가로Event를 먹습니다. 그래서 WebView 의 focusable을 false 로 만들어 주면 가능하며 xml에서 설정해도 적용되지 않으므로 코드상에 한번더 설정해줘야 합니다.

저작자 표시 비영리
신고

댓글을 달아 주세요

  1. 다루 2012.03.28 10:11 신고  댓글주소  수정/삭제  댓글쓰기

    정말 감사합니다 ㅠㅠ

    이문제로 몇일간 고생했는데

    정말 좋은 정보 주셔서 감사합니다 ㅎ

  2. Favicon of http://susemi99.tistory.com BlogIcon 쎄미 2012.10.23 11:28 신고  댓글주소  수정/삭제  댓글쓰기

    고맙습니다 ^^

  3. Favicon of http://rainmaker0303.tistory.com BlogIcon 무대포개발자 2013.01.01 20:28 신고  댓글주소  수정/삭제  댓글쓰기

    좋은 자료네요 퍼갈게요 ^^

개인적으로 안드로이드 프로그램을 공부해 보고 싶어 뭘하나 만들고자 했습니다.
그래도 마켓에 올리고 사람들이 사용해 주길 바라는 개발자의 마음이 있기에..
정말 중요하면서 간단하지만 정말 필요한게 무엇인지 찾아보던중..

아.. 안드로이드에서의 지하철 프로그램들은 왜 다들 이모양이냐.. 라는 생각을 하게 되었습니다.

그래서 만들기 시작한 지하철 노선도 프로그램..


처음 시작을 어떻게 해야 하나 상당히 고민을 하였으나..
지하철 이미지를 우선 만들고..
지하철의 위치와 정보를 따로 만들어 해당 이미지위에 좌표를 그리던.. 하자.. 라는 식으로 진행하였습니다.

처음에 Scroll 객체를 이용해서 View를 집어 넣었더니.. 이건뭐..
안드로이드가 문젠지 단말기가 문젠지.. 정말 버벅거려서..
Scroll객체를 제거하고 View만 통으로 집어 넣고..
move를 감지해서 이미지를 다시 그리는 식으로 만들었더니 그나마 좀 좋아졌습니다.

좌료를 하나하나 excel에 기록해서 지하철정보와 함께 만들어 놓고.
[현재는 1호선 / 2호선 정보만 입력한 상태]
그리고 경로를 선택하면 원하는 지점까지의 최적경로를 찾아내기 위한 노력을 했습니다.
아.. 이놈의 알고리즘.. ㅜ0ㅜ

처음엔 정말 별거 아닐거라 생각하고 최적의 경로를 검색하는 로직을 작성하는데..
이게 잘 안되는겁니다.ㅜ0ㅜ
그래서 생각해낸 Tree구조.. 시작점을 최상위 root로 잡고 child를 그려나가는 식으로...
성능이 안나오지 않을까 걱정했으나 아직까지는 큰 문제는 없어 보입니다.

그런데.. 이게 쉽지가 않군요..
찾긴 찾는데.. 원하는 방향을 찾지 못하네요..

아무튼 거의 중요한 부분들은 틀을 만들고 구현하는데 성공하였습니다.

이제 사용자 편의성을 개선시키고..
남은 지하철 3~9호선 + 분당선 좌표 집어 넣고..
마켓에 1.0을 릴리즈 하는 일만 남았네요.

아무튼.. 웹프로그래밍만 하다가 오랜만에 어플리케이션을 만들려니.. 이거 머리에 쥐가 나겠습니다. ㅜ0ㅜ


저작자 표시 비영리
신고

댓글을 달아 주세요

  1. RoyPark 2013.09.28 20:51 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 지하철 어플 관련해서 질문하고 싶은데요!!
    보통 노선도를 보여주고 해당역을 클릭하면 정보를 볼수 있는데, 이미지위에 해당 역을 클릭한다는게 이해가 안가네요… 설명좀 부탁드리면 안될까요? 이미지 위에 어떻게 각각의 역을 객체로 만드는지 모르겠습니다. (이미지는 확대 축소가 가능한 상태에 이동도 가능한 상태라는 가정하에!!)



 

티스토리 툴바