목록FrontEnd/Android (63)
만족
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(),"뒤로 버튼을 한..
solution1> 가장 빈번하게 발생하는 원인인, activity를 새로 만들고 난 후 manifast에 activity를 추가해주지 않아서 그렇다. 대부분은 눈에 불들어와서 폭풍코딩하다가 한두개씩 실수로 누락하는 경우에 발생한다. solultion2> manifast의 package 속성을 확인하자. 예를 들어, 저부분에서는 package="com.example.denky.grattimetable"이라고 되어 있는데, 이럴 경우에는 저 패키지 안에 있는 activity만 인식이 가능하다. 저 패키지 밖에 있는 activity를 아무리 추가해줘봤자 얜 저 패키지 밖에 있는건 인식 못하기 때문에 ㄹㅇ 삽질이 아닐 수 없다. solution3> 오타 확인하기 하 시발 이거떄문에 2시간동안 구글링했는데 잘 ..