목록FrontEnd (129)
만족
Focusable이 true로 되어 있는 뷰가 사용자와 Interaction하기 시작할 때, 그 뷰는 Focus를 가졌다 라고 한다. 대표적 예로는 EditText가 있으며, EditText를 누르면 키보드가 보여지면서 EditText와 상호작용할 수 있게 되는데, 이 때 EditText는 Focus를 갖게 된다. Focus를 갖기 위해, Focusable의 속성이 true이어야 하는데, EditText의 경우 별도의 작업이 필요 없이 true를 값으로 갖지만TextView와 같은 태그들은 임의로 속성값을 바꾸어 주어야 한다. Focusable 속성값 변경하기 1. xml에서 변경하기 해당 태그에 android:focusable="true"android:focusableInTouchMode="true"..
우리가 컴퓨터에서 JAVA를 이용하여 GUI를 개발할 때, 어떤 요소가 눌리거나 (ex 버튼) 키보드가 눌릴 때해당 동작을 인식하여, 특정 동작을 하게 만들 수 있었다. 안드로이드에서도 마찬가지로 특정 동작을 인식할 수 있는데,안드로이드에서는 키보드나 마우스를 사용하지 않고, 터치패널이나 버튼을 이용하여 장치에 입력신호를 보내게 된다. PC에서와 달리 안드로이드는, MouseListener와 KeyboardListener대신, TouchListener와 KeyListener를 이용한다. EventListener in Android Studio OnTouchListener //특정 뷰가 터치되는 동작을 인식OnKeyLIstener //특정 물리키가 눌리는 동작을 인식(ex 볼륨 업)OnClickListen..
Fragment에 관한 변경 사항을 commit()할 때마다 beginTransaction()으로 FragmentTransaction을 새로 만들어 주어야 한다 참조: http://stackoverflow.com/questions/24561874/android-fragmenttransaction-commit-already-called
프래그먼트(Fragment)란? 액티비티와 유사한 구조를 띄고 있으며, 액티비티 위에 붙여 사용하여 하나의 액티비티에 여러개의 프래그먼트를 붙임으로써, 동시에 여러 개의 화면을 보여줄 수 있다.(하나의 액티비티에 조각(Fragment)들을 붙여 사용한다) 왜 사용하는가? 하나의 액티비티에 여러 가지 xml을 불러올 수 있으며 또한 Activity 각각 intent로 만들어 시작하는 것 보다, 하나의 Activity위에 Fragment를 교체해 가며 띄우는 것이 속도 측면에서 훨씬 빠르기 때문이다. 사용법 예를 들면 아래와 같은 어떤 layout.xml에서, fragment를 추가하고 싶다면 태그를 사용한다. (첫 글자가 소문자임에 유의한다) 단, fragment는 일반적으로 FrameLayout 안에 위..
이 글은 아래 링크에서 새로 작성되었습니다 satisfactoryplace.tistory.com/203 [Android] 권한 (Permission) developer.android.com/training/permissions/requesting?hl=ko 앱 권한 요청 | Android 개발자 | Android Developers 모든 Android 앱은 액세스가 제한된 샌드박스에서 실행됩니다. 앱이 자체 샌드박스 밖에.. satisfactoryplace.tistory.com 안드로이드 마시멜로(6.0) OS 이전에는, 앱을 설치하기 전에 모든 앱 권한을 한번에 요구하고, 거절할 경우 설치 자체가 되지 않았으나 업데이트 이후에는, 기본 권한(Normal Permission)만 설치 전에 물어보고 위험 ..
하나의 객체를 여러개의 객체에 전달하는 방식을 "브로드캐스팅(BroadCasting)" 이라고 하고 이러한 정보를 "브로드캐스트 수신자"를 이용하여 받을 수 있다. 브로드캐스트 수신자를 새로 만들게 되면, Manifast에 추가해주어야 한다. 예를 들어, SMS라는 브로드캐스트를 수신하는 브로드캐스트 수신자를 추가하려면 이렇게 Manifast에 추가해주면 된다. public class SMS_Receiver extends BroadcastReceiver{ @Override public void onReceive(Context c, Intent i){ if(i.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){ Toast.makeText(c, ..
Background에서 실행되는 Process. Activity를 새로 만들면 Manifast에 추가하는 것과 마찬가지로, Service도 만든 후에 Manifast에 추가해주어야 한다. 서비스 클래스의 생성 Service클래스를 상속하며, 쓰레드 사용을 위해 Runnable 인터페이스를 implements 한다. public class ExService extends Service implements Runnable {...}Runnable는 인터페이스이므로, onBind()와 run()메소드가 반드시 정의되어야만 한다. 예를 들어 클래스를 정의하면 public class ExService extends Service implements Runnable { public static final Strin..
액티비티를 띄운 상태에서 물리적으로 back key를 누르게 되면 부모 클래스에 존재하는 onBackPress()라는 메소드가 호출이 되어 열려있는 Acitivity가destroy되는 구조이다. 이를 2초 내에 두번을 연속으로 눌러야만 액티비티가 닫히도록 하려면 onBackPress를 Override해주어야 한다. //뒤로가기 버튼을 두번 연속으로 눌러야 종료되게끔 하는 메소드 private long time= 0; @Override public void onBackPressed(){ if(System.currentTimeMillis()-time>=2000){ time=System.currentTimeMillis(); Toast.makeText(getApplicationContext(),"뒤로 버튼을 한..