Intent

이미지
intent 컴포넌트간의 호출과 데이터 전달에 이용 . 메소드 startActivity() - 새로운 액티비티를 화면에 띄울 때 startService(), bindService() – 서비스와 관련 broadcastIntent() – 브로드캐스팅을 수행할 때 명시적 인텐트 호출할 대상을 정확히 지정해주는 경우 . Intent intent = new Intent (MainActivity.this, SubActivity.class); startActivity(intent); 암시적 인텐트 액션과 데이터를 지정했으나 호출할 대상이 변경될 수 있는 경우 startActivity(), startActivityForResult() 둘다 모두 액티비티를 띄우기 위한 메소드이다 . 차이점은 startActivity(Intent intent) 의 경우에는 단순히 대상의 액티비티만을 띄우기 위한 용도로 사용된다 . startActivityForResult(Intent intent, int requestCode) 의 경우에는 액티비티를 띄운 대상에게 데이터를 전달 하거나 다시 돌아올 때 데이터를 받기 위한 수단으로 사용한다 . 이 메서드를 사용하고 나서 onActivityResult(int requestCode, int resultCode, Intent data); 메서드를 사용하면 전달받은 데이터를 사용할 수 있다 . requestCode : startActivityForResult() 에서 전해준 requestCode 이다 . intent 가 여러개 있을 경우 이 코드로 어떤 화면에서 전달 받은 것인지 판별 할 수 있다 . resultCode : 다시 원래 화면으로 돌아올 때 전 액티비티에서 결과로 전해준 코드값이다 . data : 다시 원래 화면으로 돌아올 때 전 액티비티에서 결과로 전해준 데이터가들어 있다 . 액티비티에서 인텐트전달받는 경우는 두가지가 있는데 ...

LayoutInflater

이미지
XML 에 정의된 내용을 객체화 ( 인플레이션 ) 시키기 위해서 사용하는 객체이다 . 우리가 XML 레이아웃에 정의된 내용에서 Button 이나 EditText 와 같은 뷰 , 위젯들을 참조하기 위해서는 XML 레이아웃의 내용이 객체화 되어야 하는데 이때 사용하는게 inflate() 라는 메서드이다 . inflate(int resource, ViewGroup root) 첫 번째 파라미터로는 XML 레이아웃 리소스를 넣어주고 , 두 번쨰는 뷰들을 객체화하여 추가할 대상이 되는 부모 컨테이너를 지정한다 . LayoutInflater 객체를 얻어오는 법 getSystemService(Context.LAYOUT_INFLATER_SERVICE); LayoutInflater.from(Context context); LayoutInflater 객체를 얻어와 inflate() 메소드를 호출하는 한줄 코드 View 를 리턴하는 static View inflate(Context context, int resource, ViewGroup root); 위 사진은 activity_main.xml 에 있는 FrameLayout 에 sub1.xml 에 있는 내용을 나타내 주는 간단한 코드이다 .

setVisible속성

setVisible() 속성 View 를 보이게 하거나 보이지 않게 하는 기능을 가지고 있다 . View.VISIBLE 화면에 View 의 내용이 보여지게 된다 . View.INVISIBLE 화면에서 View 의 내용이 보여지지 않게 된다 . View.GONE 화면에 View 의 내용을 사라지게 하는 INVISIBLE 의 기능과 비슷하지만 INVISIBLE 의 경우에는 View 가 공간을 차지한 상태에서 내용만 사라지지만 GONE 의 경우에는 View 가 차지하는 공간까지 사라지게 만드는 특성이 있다 . 예를 들면 [a b c d e] 의 경우에서 b 를 View.INVISIBLE 을 설정하게 된다면 [a c d e] 와 같이 공간은 남게 된다 . View.GONE 의 경우 [a c d e] 와 같이 공간 자체도 같이 사라진다 . 

간단한 계산기 만들기(EditText, TextView, Button)

이미지
button Button 은 사용자가 화면을 터치했을 때 발생하는 클릭 이벤트를 처리하는 기능을 가진 , 텍스트 또는 아이콘 ( 또는 텍스트와 아이콘 모두 ) 으로 구성된 View 위젯 . TextView 의 자식 클래스이므로 TextView 에 정의된 속성 , 기능 들을 대부분 사용이 가능하다 . layout 리소스 XML 에 추가된 버튼에 대해서 JAVA 소스 에서는 EditText 와 TextView 와 같이 id 를 통한 참조를 이용해서 가져올 수 있다 . button 을 통해서 이벤트 처리를 할 수 있는데 이때 , 리스너라는 이벤트 발생에 대한 처리를 하는 객체를 사용한다 .     이벤트 처리에 대한 기능을 onClick(View view) 함수에 정의하면 기능이 구현된 OnClickListener 을 생성하고 setOnClickListener() 함수를 호출하여 Button 에 지정하게 된다 . Button 의 이벤트처리 방법 1. 위와 같이 익명 클래스를 생성하여 이벤트 리스터로 사용하는 방법 2. 생성해 놓은 익명 클래스의 참조를 이벤트 리스너로 사용하는 방법 .     3. 이벤트 리스너를 implements 하는 이벤트 리스너 클래스 생성하는 방법 . 4. MainActivity 가 이벤트 리스너를 implements 하는 방법 5. layout 리소스 XML 에서 onClick 속성 사용하기 . -onClick 속성을 이용한 간단한 계산기 .         결과 . 출처 : http://recipes4dev.tistory.com/55?category=635576

TextView, EditText

이미지
TextView 화면에 텍스트를 표시하는 기능을 담당하며 , 텍스트 출력 기능을 가진 기본 위젯 . Button 과 EditText 의 부모 클래스이기도 함 . 사용자가 변경할 수 없다 . EditText TextView 를 부모로 두고 있으며 TextView 의 기능에 더해 사용자가 텍스트의 편집을 가능하게 해준다 . EditText 와 TextView JAVA 소스에서 사용하기 TextView 와 EditText 를 사용하기 위해서 레이아웃 리소스 XML 에 EditText 와 TextView 를 추가 . TextView 와 EditText 모두 text 속성을 이용하여 첫 화면에 원하는 텍스트를 나타낼 수 있다 . EditText 같은 경우 hint,text 속성을 가지고 있는데 두 속성 모두에 텍스트를 지정할 경우 text 속성이 우선적으로 화면에 나타나게 된다 . hint 속성은 사용자가 텍스트 입력 시 자동으로 사라지게 되고 , text 속성을 설정했을 경우에는 사용자가 직접 텍스트를 지워야 한다 . EditText과 TextView모두    id 를 통해서 참조할 수 있도록 해준 다음 getText() 를 호출하여 텍스트를 가져올 수 있으며 , toString() 을 통해 String 타입으로 변환 해줍니다 . 텍스트의 변경은 setText() 를 통해 변경할 수 있다 . 참고: http://recipes4dev.tistory.com/61