5월, 2018의 게시물 표시

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 에 있는 내용을 나타내 주는 간단한 코드이다 .