본문 바로가기
Front-end/Android (안드로이드 앱 개발)

Android studio (안드로이드 스튜디오) AddView, inflater

by javapp 자바앱 2020. 3. 1.
728x90

AddView

 

layoutInflater 를 통해 layout을 그려주고

addview 함수를 통해 view를 추가해준다.

 

Inflater

-    item을 해당 layout(xml)에 그리는 역할

 

Layout File

-    item 하나가 그려질 view

 

Item list

-    리스트 목록

 

Item

-    리스트 목록의 하나

 

 


 

 

public class MainActivity extends AppCompatActivity {
    ArrayList<String> arrayList;
    LayoutInflater layoutInflater;
    LinearLayout container;
    Context context;
    View view;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        context = this;

        arrayList = new ArrayList();
        arrayList.add("/// 1 ///");
        arrayList.add("/// 2 ///");

        container = findViewById(R.id.container); //메인 xml에

        layoutInflater = LayoutInflater.from(this); //그리는 도구

        for(int i = 0; i < arrayList.size(); i++)
        {
            //view에 아이템 그려준다.
            view = layoutInflater.inflate(R.layout.layout_list_item,null,false);

            TextView itemText = view.findViewById(R.id.item_textVIew);
            itemText.setText(arrayList.get(i) );

            container.addView(view);//메인에 view 를 추가
        }

        layoutInflater = LayoutInflater.from(this); //그리는 도구
        view = layoutInflater.inflate(R.layout.layout_list_image,null,false);
        ImageView imageView = view.findViewById(R.id.imageVIew);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(),"이미지 클릭",Toast.LENGTH_LONG).show();
            }
        });
        container.addView((view));
    }
}

댓글