Java 동적 view 추가 방법

일반적인 상황에서 우리 대부분은 XML 파일에서 레이아웃을 직접 쓰지만, 어떤 때는 코드로 레이아웃을 동적으로 추가해야 한다. 예를 들어 내가 어제viewpager의 페이지 수를 표시했다. 텍스트View를clear에 삭제하는 내용이 없으면 자바 코드로 동적으로 추가하는 내용이 있다.
1. 코드를 작성하고view를 생성하여 linearLayout에 추가합니다.

mTextView=new TextView(mActivity);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(60, 30);
mTextView.setLayoutParams(layoutParams);
mTextView.setTextColor(Color.parseColor("#03A9F4"));
mTextView.setVisibility(View.GONE);
dotsLinearLayout.addView(mTextView);
2.viewpager의 페이지 수에 따라 textView 표시

public void setCurrentNumber(int number){
  boolean isContain=false;
  for(int i=0;i<dotsLinearLayout.getChildCount();i++){
   View v=dotsLinearLayout.getChildAt(i);
   if (v instanceof TextView){
     isContain=true;
   }
  }
  if (isContain == false){
   setMTextView();
  }
  if (myViewPagerAdapter!=null){
   int current=number+myViewPager.getCurrentItem()*4;
   mTextView.setText(current+"/"+myViewPagerAdapter.getCount()*4);
   mTextView.setVisibility(View.VISIBLE);
   for (int i = 0; i < dotViews.size(); i++) {
      dotViews.get(i).setVisibility(View.GONE);
   }
  }
}
그 중에서 for 순환은 linearlayout에 textView가 존재하는지 판단하고 존재하지 않으면 textView를 만들고 동적으로 textView의 데이터를 변경할 수 있습니다.

좋은 웹페이지 즐겨찾기