본문 바로가기

PROGRAMING/Android

(26)
slide touch button , 알람에 ,월,화,수,목,금,토, 슬라이드 터치.(drag touch) 알람 어플을 만들때월,화,수,목,금,토,일 버튼이 있고 이것을 살짝 slid로 드래그 하면 버튼들이 눌리는 그런 것을구현 하고 싶었다. Touch이벤트를 이용해서 쉽게 구현할수 있을 것 이라 생각했지만 실상은 그렇지 않았다.버튼 마다 Touch이벤트를 구현했지만 한버튼 예를 월 버튼을 클릭하고 slide를 하여화 버튼까지 간다고 하여도 화 버튼의 touch 이벤트는 반응 하지 않았다.-- ACTION_DOWN이벤트가 오고 나서 ACTION_MOVE 이벤트는 버튼 사이를 인식 하지 못하였다. 구글 검색 결과 http://stackoverflow.com/questions/5073617/slide-finger-into-buttons-androidboolean firstTime = true; //버튼이 한번 클..
PlayList특정 재생 항목의 Music들의 재생순서 변경하기 moveItem 사용 PlayList특정 재생 항목의 Music들의 재생순서 변경하기 moveItem 사용http://developer.android.com/reference/android/provider/MediaStore.Audio.Playlists.Members.html#moveItem(android.content.ContentResolver, long, int, int)public static final boolean moveItem (ContentResolver res, long playlistId, int from, int to)Added in API level 8Convenience method to move a playlist item to a new locationParametersresThe content ..
Playlists.Members.getContentUri와 PlayList안의 음악들 조회 android.provider.MediaStore.Audio.Playlists.Members.getContentUri("external",mPlaylistId); 위 구문을 사용하면 mPlaylistId [playlist_id]에 해당 하는 재생목록의 음악들을 검색할수 있는 Uri가 만들어진다."external" 문자열은 무슨 내용인지 잘모른다. 하지만 "external"로 넣어서 올바른 값을 리턴받았다는 사실에 주목하자. Uri audioExternalPlayListUri = android.provider.MediaStore.Audio.Playlists.Members.getContentUri("external",mPlaylistId); CursorLoader tmp = new CursorLoader(t..
Intent로 Activity 열기 getIntent로 전달된 값 받기 Intent로 Activity 열기 getIntent로 전달된 값 받기시나리오 Intent로 Activity를 새로 열고 데이터를 보내려고 했다.문제long 형 배열을 보내려고 시도 했으나 받는 쪽에서 형변환 오류가 발생 원인Long형 배열을 putExtra해서 보냈습니다만다음 Activity에서 사용한intent.getLongArrayExtra(name) 는 long 형으로 변환하려고 했다.해결ArrayList형태로 put 하고다음 Activity에서는 intent.getSerializableExtra(name);를 사용하고 Casting 하여 사용했다.ArrayList ids= (ArrayList) intent.getSerializableExtra(name);정상동작 한다교훈Long과 long 자료형..
thread를 돌려서 callback으로 데이터 얻어오기 안드로이드에서 JB에서 네트워크에 접속하여 데이터를 얻어오는 로직을 넣을 경우 쓰레드로 하지 않으면컴파일 에러를 발생시킨다.쓰레드를 사용한 예제를 만들어 보았다. 요구사항은 다음과 같다.1. android에서만 사용되지만 해당 java class파일은 jar로 묶을수 있어야 한다.(결합도가 낮아야한다.) 방법 Interface를 사용해서 결합도를 낮췄고 android의 Handler 개체를 써서 UI Thread에 결과값이 받아지도록 했다. Activitypublic class MainActivity extends Activity implements Test2.ThreadRecevie{public String CLASSNAME = "MainActivity";@Overrideprotected void on..
Android log 저장방법 UncaughtExceptionHandler 구현과 android.app.application 최근에 개인 공부를 위해 만들고 있는 안드로이드 어플이 있는데집에 오면서 사용하는 도중 Sorry Pop이 발생하였다. 에러를 잡고 싶었는데 로그 없어서 에러를 확인하지 못하는 상황이 발생되었다. 런타임 에러로그를 파일로 남기면 좋게다는 생각이 들어 구글링을 하게되었다. 결론은 자바에서 제공하는 "Thread.UncaughtExceptionHandler" 인터페이스를안드로이드의 android.app.application을 상속 받아 구현한 custom Application에 구현하는 것이해결 방법이었다. (Thread.setDefaultUncaughtExceptionHandler(this);) 참고자료 http://blog.csdn.net/liuhe688/article/details/6584143#중국자..
Fragment 에서 BackStack 사용안하기. Fragment에서 BackStack 사용안하기 FragmentTransaction ft = getFragmentManager().beginTransaction();ft.replace(R.id.frameLayout, mFirstFragment, FRAGMENT_FIRST);ft.setBreadCrumbTitle(R.id.btnFirst);//ft.addToBackStack(null);ft.commit(); 위 소스와 같이 addToBackStack 구문을 쓰지 않는다면 Stack에 저장을 하지 않는다. 중요. 앞서 장에서 와 같이 버튼 1 버튼 2 버튼 3 FragmentLayout 버튼 클릭시 ft.replace로 Fragment가 대체됨 해당 시나리오에서 BackStack을 모두 사용하지 않는다면 버..
Fragment에서 BackStack 사용시 현재 전면에 나와있는 Fragment알아오기(OnBackStackChangedListener) 1번째 방법 FragmentTransction을 commit 할때 setBreadCrumbTitle등의 함수를 이용하여Transection에 추가 정보를 넣는다. @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btnFisrt = (Button) findViewById(R.id.btnFirst);Button btnSecond = (Button) findViewById(R.id.btnSecond);Button btnThree = (Button) findViewById(R.id.btnThree);mText..