반응형
Fragment 에서 XML 파일을 부분화면으로 혹은 전체 화면으로 붙이기 위해서 Inflation 이라는 작업을 거쳐야 하는데 adapter나 기타 View 를 붙여넣어야 하는 경우에 View 를 return 하는 Java 파일을 만들어서 붙이는데 헷갈려서 정리하기 위해서 기록 한다. 현재 까지 이해하고 있는 범위는 adapter 같이 view 를 돌려 받아야 하는 경우에만 추가로 view를 리턴 받을수 있는 View 자바 파일을 만들고 이용하면 된다.
1) View 자바 파일 코드 : 최상위 붙일 Layout 을 상속한다. inflation 작업하고, 접근 할수있는 set 메소드를 만든다.
public class SingerItemView extends LinearLayout {
ImageView imageView;
TextView textView;
TextView textView2;
public SingerItemView(Context context) {
super( context );
init(context);
}
public SingerItemView(Context context, AttributeSet attrs) {
super( context, attrs );
init(context);
}
private void init(Context context){
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
inflater.inflate( R.layout.singer_item, this, true );
imageView = (ImageView) findViewById( R.id.imageView );
textView = (TextView) findViewById( R.id.textView );
textView2 = (TextView) findViewById( R.id.textView2 );
/* 외부에서 set할수 있도록 setName,mobile,image 메소드생성 */
}
public void setName(String name){
textView.setText(name);
}
public void setMobile(String mobile){
textView2.setText( mobile );
}
public void setImageView(int resId){
imageView.setImageResource( resId );
}
}
2) Adapter 코드 : BaseAdapter 를 상속하는 Adpater 클래스 만든다. getView 코드를 보면 adpter에 설정값을 연결시켜 값을 쓰고 있다.
class SignerAdpter extends BaseAdapter {
ArrayList<SignerItem> items = new ArrayList<SignerItem>( );
public void addItem(SignerItem item){
items.add( item );
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return items.get( position );
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
SingerItemView view = new SingerItemView(getApplication());
SignerItem item = items.get( position );
view.setName( item.getName() );
view.setMobile( item.getMobile() );
view.setImageView( item.getResId() );
return view;
}
}
}
'안드로이드 프로그래밍[JAVA Code] > Fragment' 카테고리의 다른 글
Fragment : Activity 에서 부분화면 inflation 하는 방법 (0) | 2019.12.12 |
---|---|
Fragment : 생명주기 (0) | 2019.12.03 |
Fragment : 프래그먼트 부분 화면 이동하기 (0) | 2019.12.02 |