Category Archives: Android

Android 에 관련된 이야기

OSX Mountain-Lion 에서의 Eclipse 버그

https://bugs.eclipse.org/bugs/show_bug.cgi?id=388574

 

맥OS 를 산사자로 업글하고 난 후

Xml 파라메터 수정을 위해 Properties 컬럼을 클릭하면

버그가 있고 저 링크를 가봐라.. 라는 팝업이 뜬다..-_-..

막상 가보면 이미 fix 했다는 얘기만 있고 해결법이 없다!!;;;

 

근데..

 

이거 그냥

 

Eclipse 4.3 Kepler 버전 다운 받으면 해결 된다 -_-…

 

다운은 여기;

 

http://www.eclipse.org/downloads/packages/eclipse-classic-43-m4/keplerm4

 

 

괜히 삽질했음;;;

 

Android ListView : 아이템 갯수가 적을 때 보이지 않는 현상

리스트뷰 사용시 아이템 갯수가 스크롤이 될 만큼 많지 않을 때

데이터는 있는데 리스트에 표시 되지 않는 경우가 있다.

이건 리스트뷰의 height가 제대로 적용이 안되는건데

아마 99% 이상의 확률로

리스트뷰를 FrameLayout 으로 감싸놓았을 것이다.

FrameLayout 을 RelativeLayout 으로 바꿔서 사용하면

해결됨

FrameLayout … 멍닐라ㅣㅜ나미퍼ㅣㄴㅁㅇ ㅠ_ㅠ

 

android – Pull To Refresh ListView

아이폰처럼 안드로이드도 리스트뷰를

아래로 당기면 재조회 할수가 있다.

 

아래 주소가서 소스 받아서 보면 된다. -_-..

 

 

https://github.com/johannilsson/android-pulltorefresh

 

johannilsson 이놈 천재인듯 -_-…

 

내가 바보인 건지도(?);;

 

 

궁금한건 댓글주세용 ㅋ

 

 

PS. 조회가 완료되면 listview.onRefreshComplete(); 를 호출해 주어야 다음 재조회가 가능해진다.

 

 

느린 SimpleDateFormat 대신 FastDateFormat 을 사용하자!

안드로이드에서 날짜를 뿌리는 리스트뷰를 만들어야 했는데

리스트 뷰 스크롤이 엄청 느렸다. -_-

왜 그런가 살펴보니 SimpleDateFormat 이 문제였다.

엄청 느림.. -_-..;;;

 

해결책은

아파치에서 제공해주는 FastDateFormat을 사용하는 것!

 

1. 우선 commons-lang-2.4.jar 을 다운 받아 프로젝트에 임포트 시키고 시작.

 

사용법은 아래 함수 참고~

 

 

 

/**

* 문자열을 Date 객체로 변환

@param toStr

@return

*/

public static Date parseDate(String toStr) {

Date date = null;

try {

String[] parsePattern = {“yyyy-MM-dd HH:mm:ss Z”};

date = org.apache.commons.lang.time.DateUtils.parseDate(toStr, parsePattern);

catch (ParseException e) {

e.printStackTrace();

}

return date;

}

 

 

public static String formatDateTimeToString(String toDate) {

if(!toDate.equals(“”)){

Date date = parseDate(toDate);

 

FastDateFormat format = FastDateFormat.getInstance(“yyyy-MM-dd HH:mm”, TimeZone.getDefault(), Locale.getDefault());

return format.format(date);

}else{

return “”;

}

}

 

 

속도 엄청 빨라진다~~~ ㅎㅎ

 

궁금한 점은 댓글로!

 

 

 

 

ps. Library 원본은

 

http://grepcode.com/project/repo1.maven.org/maven2/commons-lang/commons-lang/

 

여기

 

slidingdrawer left to right

slidingdrawer 는 우에서 좌, 하에서 상으로 밖에 움직일 수 없다.

근데 좌에서 우, 상에서 하로 구현하고 싶다.

그래서 구글링을 해서 소스를 얻을 수 있었다.

엄밀히 말해서 slidingdrawer 로 구현한건 아닌데

비슷한 기능인듯…

android-misc-widgets

라는 소스고 svn 주소가 이상해서 여차여차 해서 구했다.

필요하심 첨부파일 다운 받아서 연구해보세용 ㅎㅎ;

 

AndroidMiscWidgets.zip

 

 

[Android] MediaScan 의 finish 캐치

sendBroadcast  를 실행하기 전에 미디어스캐너의 종료를 잡을 리시버를 등록한다.

IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_STARTED);
intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
intentFilter.addDataScheme(“file”);
registerReceiver(mReceiver, intentFilter);

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_MEDIA_SCANNER_STARTED)) { // 미디어스캐너의 시작 감지
System.out.println(“Media Scanner started scanning ” + intent.getData().getPath());
}
else if (intent.getAction().equals(Intent.ACTION_MEDIA_SCANNER_FINISHED)) { // 미디어스캐너의 종료 감지
System.out.println(“Media Scanner finished scanning ” + intent.getData().getPath());
}
}
};