월별 글 목록: 2010년 10월월

오랫만에 구글 애드센스 수익을 지급을 받았습니다.

 오랫만에 구글 애드센스에서 수익을 지급을 받았습니다. 100$ 정도 한번 받고 나서 거의 2년 만인 것 같네요. 최근에는 점점 수익율이 줄어서 1달에 2$ 이상 벌기가 힘든 것 같습니다. 이번에는 웨스턴유니언 캐쉬라는 지급 제도를 사용하여 우편을 기다리지 않아도 되서 무척 편해진 것 같습니다.

지급 방식
Western Union Quick Cash
지급일
2010. 10. 27
MTCN(Money Transfer Control Number)
비밀
지급 통화로 환산된 금액
USD US$101.63
위의 지급일 다음날에 지급금을 수령할 수 있습니다.
웨스턴 유니언 사무소에서 지급금을 수령할 때 필요한 사항은 다음과 같습니다.

  • 지급 금액
  • 해당 지급에 대한 MTCN(Money Transfer Control Number)
  • 국가 발행 신분증(여권, 운전면허증, 주민등록증 등)
  • 발송자 정보:Google Inc.
    1600 Amphitheatre Parkway
    Mountain View CA 94043
    USA


 위와 같이 지급이 되었다고 되어 있네요. 다음주 중으로 웨스턴유니언 퀵 캐쉬 취급 은행(국민은행 거의 다 되는 것 같더라구요 -> 기업은행만 가능)에 가서 바꿔와야 할 것 같습니다. 도메인이랑 호스팅 비용 빼면 남는 것도 별로 없을 것 같네요.

[안드로이드] ListView의 Header 와 Footer 여러 개 넣고 사용하기

 ListView 에 Header 와 Footer 를 여러 개 넣고 사용하려면 우선 setAdapter 를 하기 전에 addHeaderView와 addFooterView 함수를 통해 Header 와 Footer 를 모두 추가해야합니다. 그리고 setVisibility 함수를 사용해서 원하는 Header 와 Footer 를 남기면 됩니다. 전 글에서도 작성했듯이 addFooterView 함수는 사실 setAdapter 전에 dummy layout 하나 추가해두고 사용하면 되긴 하는데, 성능에 영향을 미치는 layout 이 아니라면 미리 다 추가해 두고 사용하는 것이 좋을 것 같다고 생각합니다.

 setVisibility 함수를 사용하는데 주의해야 할 점은 전체 View 에 대해서 setVisibility 를 GONE로 적용해도 빈 공간이 나온다는 점입니다. 이럴 경우 layout 안에 전체 layout 을 감싸고 있는 layout 객체에 적용을 하면 잘 되는 것을 확인하였습니다.

 이러한 전체적인 부분을 “더보기” 와 같은 기능을 가진 컴포넌트로 만들 수 있습니다. ListView를 많이 사용하는 어플리케이션이나 앞으로 만들 어플리케이션들이 이러한 기능을 가지고 있다면 전체적인 부분에 대해서 컴포넌트화 시켜두면 좋을 것이라 생각합니다.

– 안드로이드 2.1 & 2.2 버전에서 테스트 되었습니다.



[안드로이드] ListView에서 addFooterView 했을 때 보이지 않는 문제

 ListView 에는 addFooterView라는 것이 있습니다. 안드로이드 개발자 사이트를 보면 아래와 같이 설명이 되어 있습니다.







public void addFooterView (View v)


Since: API Level 1



Add a fixed view to appear at the bottom of the list. If addFooterView is called more than once, the views will appear in the order they were added. Views added using this call can take focus if they want.


NOTE: Call this before calling setAdapter. This is so ListView can wrap the supplied cursor with one that will also account for header and footer views.



Parameters





v The view to add.


public void addFooterView (View v, Object data, boolean isSelectable)


Since: API Level 1



Add a fixed view to appear at the bottom of the list. If addFooterView is called more than once, the views will appear in the order they were added. Views added using this call can take focus if they want.


NOTE: Call this before calling setAdapter. This is so ListView can wrap the supplied cursor with one that will also account for header and footer views.



Parameters











v The view to add.
data Data to associate with this view
isSelectable true if the footer view can be selected

출처 : http://developer.android.com/reference/android/widget/ListView.html#addFooterView(android.view.View)

 보니까 setAdapter 전에 호출을 해야 된다고 합니다. 제가 원하는 것은 setAdapter 후에도 정상적으로 해당 함수가 동작하는이었습니다. 그래서 테스트를 해보니 setAdapter 전에 dummy layout을 하나 add 해놓으면 그 뒤로 추가하는 것은 문제가 없다는 것을 발견하였습니다. 즉 setAdapter 후에도 addFooterView와 같은 것이 동작하도록 하려면 우선 dummy layout을 하나 만들어야 합니다. 예를 들면 아래와 같습니다.





<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout

xmlns:android=”http://schemas.android.com/apk/res/android”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”>

</LinearLayout>

 setAdapter 함수를 호출하기 전에 이러한 layout 파일을 하나 addFooterView 하도록 합니다. add를 하더라도 내용이 아무 것도 없기 때문에 화면에 보이지 않습니다. 이렇게 하면 setAdapter 후에 addFooterView를 해도 정상적으로 해당 기능이 동작하는 것을 보실 수 있으실 것 입니다. 하지만 addHeaderView의 경우 비슷한 기능을 하는 함수인데 아래 코드 때문에 이와 같은 동작이 불가능 한 것 같습니다.





if (mAdapter != null) { throw new IllegalStateException( “Cannot add header view to list — setAdapter has already been called.”); }

.

– 안드로이드 2.1 & 2.2 버전에서 테스트 되었습니다.