안드로이드 개발 질문/답변
(글 수 45,052)
import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.Gallery.LayoutParams;
/**
* 갤러리에 아이템을 제공하는 아답터 클래스
* @author SeolBK
*/
public class BkGalleryAdapter extends BaseAdapter {
private Context mContext;
private LayoutInflater mInflater;
private int count;//레이아웃 생성해주는 객체
private int mBackgrounColors[] = { Color.WHITE, Color.BLUE, Color.CYAN };
/**
* 초기화 하는 생성자
* @param con - 사용하는 Context
*/
public BkGalleryAdapter(Context con){
mContext = con;
mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
count = mBackgrounColors.length;
}
/**
* 전체 아이템 갯수를 반환한다.
* @return 아이템 갯수
*/
public int getCount() {
return count;
}
/**
* 해당 포지션의 아이템을 반환한다.
* @param position - 아이템의 포지션
* @return 여기서는 그냥 포지션 그대로 넘겨 줌
*/
public Object getItem(int position) {
return position;
}
/**
* 해당 아이템의 id를 반환한다.
* @param position - 선택된 아이템의 포지션
* @return 아이템의 position
*/
public long getItemId(int position) {
switch(position){
case 0 :
break;
}
return position;
}
/**
* 보여져야할 포지션에 맞는 아이템을 생성하여 반환한다.
* @param position - 아이템의 포지션
* @param convertView - 리스트에 보여질 아이템 뷰
* @param parent - 해당 뷰의 부모 뷰
*/
// public void btnName(int position){
// switch(position){
//
// }
// }
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder; //세부 뷰에 직접 접근하는 클래스
//뷰의 재사용이 아니고 처음 생성하는 것이면
if(convertView == null) {
holder = new ViewHolder(); //뷰 홀더 생성
convertView = mInflater.inflate(R.layout.gallery_item, null); //xml파일로 부터 아이템 뷰 생성
//세부 뷰에 직접 접근할 수 있게 뷰 할당
holder.btn = (Button)convertView.findViewById(R.id.btn);
//해당 아이템에 태그로 등록
convertView.setTag(holder);
LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
convertView.setLayoutParams(lp);
}
else //뷰의 재사용이면
holder = (ViewHolder)convertView.getTag(); //뷰의 태그로 부터 뷰 홀더 생성
convertView.setBackgroundColor(mBackgrounColors[position]); //아이템 배경 색 지정
// convertView.setPadding(30, 30, 30, 30);
switch(position){
case 0 :
holder.btn.setText("난다요");
break;
case 1 :
holder.btn.setText("고래가");
break;
case 2 :
holder.btn.setText("난다요");
break;
}
holder.btn.setTag(position);
OnClickListener mListener = new OnClickListener() {
@Override
public void onClick(View v) {
int position = (Integer)v.getTag();
switch(position){
case 0:
break;
case 1 :
break;
case 2:
break;
}
}
};
holder.btn.setOnClickListener(mListener);
return convertView;
}
/**
* 아답터에서 뷰를 재사용할 경우 세부적인 뷰에 바로 접근하기 위해
* 세부 뷰를 참조하는 클래스. (findViewById 메소드에 따른 성능저하를 줄이기 위해)
* @author SeolBK
*/
private class ViewHolder{
private Button btn;
}
}
OnClickListener mListener = new OnClickListener() {
@Override
public void onClick(View v) {
int position = (Integer)v.getTag();
switch(position){
case 0:
break;
case 1 :
break;
case 2:
break;
}
}
};
이부분에서
엑티비티전환을 시키려고하는대
어떻게해야할까요 ...



