[ Fragment ]

 

1. 기본 개념

   1. Fragment도 Activity처럼 생명주기가 있지만 Activity위에서 동작하기 때문에 Activity가 종료되면 모든 Fragment도 종료된다.

   2. Fragment는 app.Fragment와 support.v4.app.Fragment library 가 존재

   3. 화면(Activity)를 여러 조각으로 나누워도  관리 및 조회하고 싶을때 Fragment를 사용.

   4. Fragment는 항상 Activity위에 올라가 있어야 한다.

   5. [탭]버튼을 클릭시 다른 화면을 보여줄때 Activity도 가능 하지만 Fragment를 사용하면 더 좋다.

 

   9. 하나의 액티비티 위에 여러 개의 액티비티를 올릴수 있다.

       - 구체적으로 Activity클래스와 AcitivityGroup클래스를 이요하면 구현 가능

       - 하지만 하나의 화면을 독립적으로 구성할 때 필요한 여러 가지 속성들을 사용하면, 안드로이드 시스템에서 관리하는

         애플리케이션 구성 요소이므로 액티비티 안에 다른 액티비티를 넣는 것은 단말의 리소스를 많이 사용하는 비효율적인 방법이 된다.

 

2. Fragment 주요 메소드

   - public final Activity getActivity()

         : 이 프래그먼트를 포함하는 액티비티를 리턴함.

   - public final FragmentManager getFragmentManager()

         : 이 프래그먼트를 포함하는 액티비티에서 프래그먼트 객체들과 의사소통하는 프래그먼트 매니저를 리턴함.  

   - public final Fragment getParentFragment()

         : 이 프래그먼트를 포함하는 부모가 프래그먼트일 경우 리턴함. 액티비티이면 null을 리턴함.

   - public final int getId()

         : 이 프래그먼트의 ID를 리턴함.

 

3. FragmentManager 주요 메소드

   - public abstract FramgentTransaction beginTransaction()

          : 프래그먼트를 변경하기 위한 트랜젝션을 시작함

   - public abstract Framgent  findFragmentById(int id)

          : ID를 이용해 프래그먼트 객체를 찾음

   - public abstract Framgent  findFragmentByTag(String tag)

          : 태그 정보를 이용해 프래그먼트 객체를 찾음

   - public abstract boolean executePendingTransaction()

          : 트랜젝션은 commit()메소드를 호출하면 실행되지만 비동기(asynchronous)방식으로 실행되므로 즉시 실행하고 싶다면 이 메소드를 추가로 호출해야 됨

 

URL : http://itpangpang.tistory.com/''

'[Android] - 개념 > Fragment' 카테고리의 다른 글

Fragment 기초 예제 3  (0) 2016.12.04
Fragment 기초 예제 2  (2) 2016.12.04
Fragment 기초 예제 1  (0) 2016.11.30
Posted by 농부지기
,

참고 : http://itpangpang.tistory.com/143

Posted by 농부지기
,

[ 다른 Layout에 있는  View의 Text값을 얻어오기 ]

 

* 정의
   1. 다른 Layout에 있는  View의 Text값을 얻어오기
   2. 이때 다른 Layout은 활성화시키지 않았어도 가져올 수 있음.

 

* MainActivity.java단에 소스

  

 public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //activity_main.xml layout에 존재하는 textView 얻기
        TextView tv_text = (TextView)findViewById(R.id.tv_text);

        //LayoutInflater 객체 생성
        LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.activity_sub, null);

        //activity_sub.xml layout에 존재하는 Button, TextView 객체 생성(얻기)
        Button btn = (Button)view.findViewById(R.id.btn);
        TextView tv = (TextView)view.findViewById(R.id.tv);

        //activity_main.xml layout의 textView에    activity_sub.xml layout에 존재하는  값을 얻어와서 보여주기
        tv_text.setText( "버튼에 써있는 글자는 ["+btn.getText().toString()+"]이고\n"

                         +"텍스트뷰에 써있는 글자는 ["+tv.getText().toString()+"]이다");
    }
}

 

Posted by 농부지기
,