안드로이드/이론 12

안드로이드 Intent 사용하기(3단계)

안녕하세요. 오늘은 A화면에서 B화면을 띄우고 B화면에서 A화면으로 돌아갈때 값을 반환하는 방법을 알아보겠습니다. ※ 이번 예제에서 사용할 intent 관련된 함수 (1단계부터 했던 함수는 제외했습니다)※ A화면이 처음 화면이고 B화면은 A화면에서 띄운 화면입니다. 1. 액티비티를 실행하고 결과값을 받을수있는 requestCode를 받는 함수 (startActivity대신에 사용할 함수)public void startActivityForResult (Intent intent,int requestCode)intent :실행시킬 화면변수를 넣음requestCode : 어떠한 값 (onActivityResult에서 필요함) 2. B화면에서 A화면으로 돌아갈때 줄 값public final void setResu..

안드로이드 Intent 사용하기(2단계)

안녕하세요 오늘 안드로이드 Intent 사용하기 2단계에서는 새로운 화면을 만들고 변수에 데이터를 넣어서 보내는걸 해보겠습니다 ※ 이번 예제에서 사용할 intent 관련된 함수 (1단계부터 했던 함수는 제외했습니다)※ A화면이 처음 화면이고 B화면은 A화면에서 띄운 화면입니다. 1.A화면에서 데이터를 변수에 저장해서 보내주는 B화면으로 보내는 함수Intent putExtra (String name,Char value)name에는 전달할 변수명을 써주고, value자리는 메소드오버로딩에 의해 다양한 자료형이 들어갈 수 있고 전달할 자료를 적으면 됩니다 2. A화면으로부터 B화면이 데이터를 받을때 사용하는 함수 getIntent()A화면에서 B화면으로 이동할때 B화면에서 getIntent()를 호출하여 값을..

안드로이드 Intent 사용하기(1단계)

안녕하세요 오늘 안드로이드 Intent 사용하기 1단계에서는Intent가 뭐하는 클래스인지 알아보고 처음 화면에서 버튼을 클릭하면 다른화면을 띄우고, 다른화면에서 버튼을 클릭하면 다시 처음화면으로 돌아가는걸 해보겠습니다. ※ Intent란?Intent클래스를 이용하면 앱을 만들때 다양한 활동을 하게 할 수 있습니다.예를들어 화면이동하거나, 갤러리로 이동하거나, 웹사이트를 띄우거나, 전화를 걸게하거나 등등 많이 이용됩니다 ※ 이번 예제에서 사용할 intent 관련된 함수 1. 객체를 만들 때 사용되는 함수Intent(Context packageContext, Class cls)packageContext에는 자기자신을 적으면되고cls에는 어떤 행동을할 클래스를 적으면 됩니다 2. 액티비티 시작하는 함수sta..

안드로이드 이미지뷰 크기 제어하기

안녕하세요 오늘은 안드로이드 이미지뷰를 제어하는걸 해보겠습니다 검정네모는 이미지뷰고, 아래는 버튼2개인데 버튼을 클릭하면 검정네모의 크기가 커졌다 작아졌다 합니다 - 필요한 함수1. getLayoutParams()-이미지뷰에 대한 파라미터정보얻기.- getLayoutParams().height:세로- getLayoutParams().width:가로 2. requestLayout()-이미지뷰가 변경됬으면 호출해야하는 함수- 이 함수를 호출하지않으면 이미지뷰크기가 안변해서, 반드시 호출해야해요. 3. 아래의 코드에서 정의한 getScreenSize함수- 현재 사용하는 기기의 화면크기를 불러오는 함수입니다.현재 기기의 화면크기를 알아야 버튼을 얼마나 크게할지, 작아지게할지 정할 수 있으니까요. Colored ..

안드로이드스튜디오 권한설정하기

안녕하세요 오늘은 안드로이드스튜디오 권한설정하는법을 알아보겠습니다 어플을 사용하다보면 이런창이 뜰때가 있는데 이게 권한을 허용해도되는지 묻는 사진입니다.마쉬멜로우 이전 버전에서는, 이러한 권한을 얻을 때 따로 이런창이 뜨지 않고 개발자가 코드상에 권한허가를 넣어주면 되었습니다그러나 마쉬멜로우 이후부터는 권한을 사용자에게 허락을 맞아야 합니다.사용자에게 권한을 허락맞지않고, 권한이 필요한 기능을 사용하려하면 에러가 뜹니다 예를들어 사용자의 저장소에서 사진을 불러와야하는 코드를 짜고 수행을 해보면 에러가뜹니다 2019-01-20 19:47:19.819 15645-15645/com.example.kkk.myapplication W/ImageView: Unable to open content: content:/..

안드로이드 Toast메세지에 대해 알아보기

안녕하세요. 안드로이드 Toast메세지에 대해 알아보겠습니다. Toast는 android.widget.Toast에 있는 클래스고, 하는 역할은 사용자에게 정보를 보여주는 역할을 합니다. 사용법은 매우 간단합니다.Toast.makeText(Context context, CharSequence text, int duration) context에는 해당 애플리케이션을 적으면되고text에는 메세지를적으면되고 duration은 지속시간을 정하면 되는데 intLENGTH_LONG 메시지를 오래 보여줌.intLENGTH_SHORT메시지를 짧게 보여줌.위의 두 가지가 있습니다. 두 가지 중에 한개를 적으면 됩니다. 그리고 나서 뒤에 .show()를 붙여야 합니다. 12345678910public class MainAc..

안드로이드 Log에 대해 알아보기

안녕하세요. Log에 대해 알아보겠습니다. Log는 android.util.Log에 있는 클래스고, 하는 역할은 안드로이드스튜디오 모니터 부분에 메세지를 띄워줍니다.그래서 개발자가 로그를 보면서 개발자에게 정보를 알려줌으로써 개발하기가 쉽게 됩니다. Log 로그를 표시하기는 매우 쉬운데요. 로그의 종류에는 6가지가 있습니다. Verbose를 선택하면 모든 로그가 보입니다. (Verbose : 말 수가 많은)나머지는 해당 단어가 의미하는 뜻 입니다. 해당 카테고리의 로그를 표시하기위해서는Log.v , Log.d, Log.i ...... 이런식으로 사용하면 되구요 Log.d(String tag, String msg, Throwable tr)Log.d(String tag, String msg)각각 카테고리마다..

안드로이드 생명주기

안녕하세요 오늘은 안드로이드 생명주기에 대해 알아보겠습니다. 안드로이드는 다른 프로그래밍 패러다임과 다르게 특정 시점에 부합하는 콜백 메서드를 호출합니다.예를들어 우리가 코딩을할때 onCreate()를 다른 프로그래밍의 Main과 동일한 개념으로보고 코딩을 합니다왜냐하면 onCreate()함수는 가장 먼저 시작되는 함수이기 때문입니다. 위의 그림은 앱의 생명주기입니다. 먼저 앱을 키면 Created, Started, Resumed가 실행됩니다. Resumed상태가 되면 사용자가 다른 액티비티와 상호작용할 수 있습니다. Paused,Stopped상태에는 해당 액티비티가 비활성화인 상태입니다. 둘의 차이점은 Paused는 액티비티가 보이는 상태이고, Stopped는 화면에서 사라진 상태입니다.예) 앱을 실행..

안드로이드 핸들러(Handler),스레드(Thread) 사용하기

안녕하세요. 핸들러(Handler)에 대해 알아보겠습니다.핸들러란 다른 객체들이 보낸 데이터를 받고 이 데이터를 처리하는 객체입니다. 이 전 글에서 스레드를 적었는데, 스레드에서 UI를 제어하려고 할 때 이 핸들러가 사용됩니다.1. 스레드객체가 핸들러객체한테 정보전송2. 핸들러객체가 UI변경이런식으로 사용하게 됩니다. 핸들러 사용 과정 위의 그림은 핸들러를 사용하는 과정인데요. 스레드가 UI를 제어하기 위해서는 핸들러에게 정보를 줘야합니다.그러기 위해서는 스레드가 먼저 핸들러 정보를 얻어야하는데요 그게 2.obtainMessage함수 입니다. 호출을 하면 Message객체를 얻을 수 있습니다.Message객체를 얻었으니 여기에 데이터를 넣고 3.sendMessage함수를 사용하여 메세지 큐에 데이터를 보..

안드로이드 스레드(Thread) 사용하기

스레드란 프로그램내에서 실행되는 실행 단위를 말하는데 일반적으로 스레드는 1개만 존재합니다.(메인)그래서 스레드를 하나더 만들면 흐름이 2개가 되서 다양한 일을 처리할 수 있습니다. 일반적으로 스레드를 생성하지않는 경우 메인스레드 한개만 존재해서, 메인스레드가 UI를 처리하게 됩니다. 그림B에서는 메인스레드 외에, 스레드1, 스레드2가 있습니다. 스레드에서는 UI를 처리하지 못하므로, 핸들러라는 객체를 사용하여 처리하게 됩니다.ex)스레드에서 텍스트뷰의 글씨를 바꾸면 에러뜸 스레드를 만드는법은 간단한데요. 먼저 스레드 클래스를 만들거나 상속한다음 run메소드를 구현해주면 됩니다. 1.스레드 클래스 만들기(익명 이너클래스)123456 Thread th = new Thread(new Runnable() { ..