안드로이드 개발 질문/답변
(글 수 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;
}
}
};
이부분에서
엑티비티전환을 시키려고하는대
어떻게해야할까요 ...