3.Android-basic

1 minute read

Android - basic3

1. Fragment

  • Activite내에서 사용자 인터페이스 일부를 나타낸다
  • Fragment 하나를 여러 activity에 사용할수있다.
  • Fragment lifeCycle


image


  • onAttactch : Fragment가 붙을때 호출(activity가 전달된다)
  • onCreateView : Fragment가 처음 그릴때 호출
  • onActivitiyCreate : Activity에 onCreat가 반환되면 호출
  • onDestroyVIew : 연관된 뷰 계층이 제거될때 호출
  • onDetacth : Activity가 끊어지는 중일때 호출

  • 방법1 Activity에 붙이기 : 동적으로 사용할때 좋다 ( 특정조건에서 교체,사라지게할때)
fragmentTransaction.add(R.id.container, new FragmentOne() ); // 작업1
fragmentTransaction.commit(); // 확인


  • 방법2 xml에 fragment를 넣기 : 하나를 여러군데에서 사용할때 좋다

<fragment
    android:id="@+id/fragment_one"
    android:name="com.example.myapplication.FragmentTwo"
    android:layout_width="match_parent"
    android:layout_height="100dp"/>


  • fragment를 통해 뷰를 그리는것 - onCreateView
  • fragment에 listener를 달거나 작업을 하고싶을때 - onActivitityCreated

2. Library

  • 특정 기능을 가지고 있는 외부 class 또는 function
  • Glide 예시


// 웹이미지를 넣는방법
Glide.with(context).load("https://img.hankyung.com/photo/202106/01.26533272.1.png").into(imageViewOne);

// 옵션을 사용하는 방법
RequestOptions cropOption = new RequestOptions().centerCrop();
Glide.with(context).load("https://img.hankyung.com/photo/202106/01.26533272.1.png")
        .apply(cropOption)
        .into(imageViewTwo);

RequestOptions circleCrop = new RequestOptions().circleCrop();
Glide.with(context).load("https://img.hankyung.com/photo/202106/01.26533272.1.png")
        .apply(circleCrop)
        .into(imageViewThree);


// 로컬이미지 불러오기
Glide.with(context)
        .load(R.drawable.ic_launcher_background)
        .into(imageViewfour);




  • listView
    • item : 리스트 뷰의 목록 하나하나
    • inflater : item을 layout에 그리는 역할
    • Layout File : item이 그려질 view
    • item list : 리스트 목록


public class MainActivity extends AppCompatActivity {

    ArrayList<String> stringList;
    LayoutInflater layoutInflater;

    LinearLayout container;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 리스트 목록
        stringList = new ArrayList<>();
        stringList.add("가");
        stringList.add("나");
        stringList.add("다");
        stringList.add("라");
        stringList.add("마");
        stringList.add("바");
        stringList.add("사");
        stringList.add("아");

        // 리스트 하나하나를 뷰
        container = findViewById(R.id.container);

        // xml 파일을 그려줄 layoutinflater
        layoutInflater = LayoutInflater.from(MainActivity.this);

        // 순회
        for (int i = 0 ; i < stringList.size() ; i ++ ){
            View view = layoutInflater.inflate(R.layout.listitem_view,null,false);

            // textview를 찾는다
            TextView itemText =  view.findViewById(R.id.itme_view_text);
            // "가"를 써준다
            itemText.setText(stringList.get(i));

            // listener를 단다
            view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Log.d("test", "onClick: ");
                }
            });

            // 완성한 뷰를 붙혀준다
            container.addView(view);
        }


    }
}


Leave a comment