안녕하세요

프로그램 과정에서 막혔던 문제들에 대한 해결책 정리


페이지 목록

2011년 1월 8일 토요일

[안드로이드] 이클립스 유용한 단축키 (android eclipse useful keyboard shortcut)

Ctrl-Shift-o = Organize imports (import 관리 - 알아서 필요한 import를
                                                  하고 불필요한 import 제거)
Ctrl-Shift-t = load class by name (이름으로 class를 불러온다)
Ctrl-Shift-r = load non-class resource by name (class가 아닌 다른 리소스
                    들을 이름으로 불러 온다 - 주로 작업하고 있는 프로젝트
                    내의 file들)
Ctrl-1 = quick fix (빠른 고침 - 이 버튼을 누르면 해당 하는 커서의 file
             명을 쉽게 바꾼다. 그리고 해당하는 project의 명도 쉽게 바꿀
             수 있다)
Ctrl-e = Recently viewed files (최근에 본 파일들이 화면 오른쪽에 나타남)
Ctrl-space = auto complete (자동 완성 - 해당 커서에서 사용할 수 있는
                                            모든 함수들이 나타남)
Shift-Alt-r = refactor:rename (해당 하는 변수의 이름 새로 고치기 - 쉽게
                                             클래스명이나 변수명을 바꿀 수 있다)
Shift-Alt-v = refactor:move (잘 모르겠음 - 아마 해당하는 변수를 다른 곳
                                                                    으로 옮기는 것)

2011년 1월 7일 금요일

[안드로이드] 심플한 음악재생 오픈 소스( android music player open source)

 간단한 음악 재생 플레이어 소스를 발견하였다.

아래 사이트에서 확인하기 바란다.

리스트에 음악 재생 목록 들이 뜨고( sd card의 바탕화면에 존재하는 음악들)

해당 하는 제목을 클릭하면 해당 노래가 나온다.

출처: http://www.helloandroid.com/tutorials/musicdroid-audio-player-part-i

[안드로이드] 프로젝트 생성 시 R.java 파일 미 생성 문제 (android new project R.java)

안드로이드에서 새로 프로젝트를 만들었을 때 R.java file이 생성되지 않았다. 이 전에는 잘 생성되다가 갑자기 생성 되지 않아서 굉장히 당황 했다.

 해결 방법은 프로젝트를 "Build"하는 것이다.

Project -> build automatically를 켜니 저절로 해결 되었다.

아마 manual로 하더라도 build를 하면 해결이 될 것이다.

[안드로이드] R 인식 문제 ( android R can't be recognized)

갑자기 R을 인식하지 못하는 문제가 생겼다.

먼가 자동적으로 R을 잡아주는 곳에서 문제가 생긴 듯 했다.

구글링을 통해 import android.R 을 지워주면 된다는 것을 알게 되었다. 신기하게도 지우니 문제가 해결 되었다 -_-b

2011년 1월 6일 목요일

[안드로이드] 자바 칼린더 (Android Java Calendar)

Calendar calToday;
  calToday = Calendar.getInstance();
  int year = calToday.get(Calendar.YEAR);
  int month = calToday.get(Calendar.MONTH);
  int date = calToday.get(Calendar.DATE);
  int hour = today.get(Calendar.HOUR);
  int min = today.get(Calendar.MINUTE);
  int sec = today.get(Calendar.SECOND);

칼린더에서 현재 날짜를 가져온다. Calender.getInstance() 그 후에 위와 같은 명령어를 이용해서 연, 월, 일, 시, 분, 초를 int 형으로 환산하여 얻어 올 수 있다. 이 외에도 요일이라던지 하는 다양한 값을 가져 올 수 있다. 자세한 기능은 아래 사이트에서 알 수 있다.
http://download.oracle.com/javase/1.4.2/docs/api/java/util/Calendar.html

[안드로이드] Button OnclickListener 사용하기

public class DateTime extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
 Button nyear;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.datetime); 
      
        nyear = (Button)findViewById(R.id.nyear);
            
        nyear.setOnClickListener(this);

       }
 @Override
 public void onClick(View v) {
  // TODO Auto-generated method stub
  switch(v.getId()){
  case R.id.nyear:
   break;
    }
 }
}

위의 예제는 OnClickListener를 사용하는 간단한 예제이다.

위에 노란색으로 강조해 논 것처럼 OnclickListener를 implement해서 사용하는 방법을 나타 내었다. findViewById를 이용하여 자신이 Control 하고자 하는 Button을 호출한다. 그 후 OnClickListener를 이용하여 OnClick 함수를 호출, 그 후 switch 문을 통해서 view의 id를 받아서 해당 하는 id 인 경우에 case문 안에서 원하는 동작을 수행하게 된다.

TIP) OnClickListener를 implement 했을 시에 class 명에 빨간색 오류가 나타나는 경우가 있다. 그 경우에는 해당하는 class명에 마우스를 가져가면 Add Unimplemented methods 라는 항목을 볼 수있다. 해당하는 항목을 클릭하면 저절로 필요한 methods가 import 된다.

[안드로이드] Relative Layout 정렬 종류(android relative layout arrange)

속성
설명
layout_above
~의 위에 배치한다.
layout_below
~의 아래에 배치한다.
layout_toLeftOf
~의 왼쪽에 배치한다.
layout_toRightOf
~의 오른쪽에 배치한다.
layout_alignLeft
~와 왼쪽 변을 맞춘다.
layout_alignTop
~와 위쪽 변을 맞춘다.
layout_alignRight
~와 오른쪽 변을 맞춘다.
layout_alignBottom
~와 아래쪽 변을 맞춘다.
layout_alignParentLeft
true이면 부모와 왼쪽 변을 맞춘다.
layout_alignParentTop
true이면 부모와 위쪽 변을 맞춘다.
layout_alignParentRight
true이면 부모와 오른쪽 변을 맞춘다.
layout_alignParentBottom
true이면 부모와 아래쪽 변을 맞춘다.
layout_alignBaseline
~와 베이스라인을 맞춘다.
layout_alignWithParentIfMissing
layout_toLeftOf 등의 속성에 대해 앵커가 발견되지 않으면 부모를 앵커로 사용한다.
layout_centerHorizontal
true이면 부모의 수평 중앙에 배치한다.
layout_centerVertical
true이면 부모의 수직 중앙에 배치한다.
layout_centerInParent
true이면 부모의 수평, 수직 중앙에 배치한다.


출처 : 김상형 - 안드로이드 http://www.winapi.co.kr/android/
제3장 3 - 1 Relative Layout 중에서