마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

FragmentActivity안 리스트뷰의 클릭 이벤트

0 추천
@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			// 재활용할 뷰가 convertView에 들어온다.
			
			ImageView iv = (ImageView) findViewById(R.drawable.drawer_profile);
			iv.setOnClickListener(new OnClickListener() {
				public void onClick(View v) {
					Intent intent = new Intent(mContext, Profile.class);
					startActivity(intent);
				}
			});
			
			View v;
			ViewHolder holder;
			// 초기상태(만약 재활용할 뷰가 없다면)
			if (convertView == null) {

				// 1. View Instance를 생성
				LayoutInflater inflater = LayoutInflater.from(mContext);
				v = inflater.inflate(R.layout.pane_list_item, null);

				// 최적화 작업
				// 한번 찾을 결과를 닫시 불러온다
				// findViewById는 모두를 비교하여 찾아야 하지만
				// ViewHolder를 만들어 사용하면 저장된 값을 불러오기 때문에 속도가빠르다.

				holder = new ViewHolder();
				holder.imageView = (ImageView) v.findViewById(R.id.paneImage);
				v.setTag(holder);

			}
			// 뷰를 재활용 한다면
			else {
				v = convertView;
				holder = (ViewHolder) v.getTag();
			}

			// 2. View에 Data 설정

			if (mBusy == true) {
				holder.loaded = false;
			} else {
				// 몇번째 데이터를 가져와하는 지를 파악한다.
				holder.loaded = true;
				// 데이터값 집어 넣기
				MyData data = (MyData) getItem(position);
				// 만들어진 뷰를 넘긴다.
				holder.imageView.setImageResource(data.imageResource);
			}
			return v;
		}

FragmentActivity 내의 listview 안에 있는 이미지뷰 항목을 클릭해서 다른 액티비티로 이동하려고 하는데 잘 안되네요..ㅠㅠ

이유를 모르겠어요, 문법 오류는 없습니다.

혹시 아시는 분 있으시면 도움 주시면 정말 감사하겠습니다...꾸벅

사자87 (240 포인트) 님이 2014년 1월 3일 질문

1개의 답변

+1 추천
 
채택된 답변
맨위에 있는 클릭이벤트는 지우시고

holder.imageView.setOnClickListener로 넣으셔서 그 안에 맨위에 넣었던 내용을 구현하시기 바랍니다.
Gradler (109,780 포인트) 님이 2014년 1월 3일 답변
사자87님이 2014년 1월 3일 채택됨
holder.imageView.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent(mContext, Profile.class);
        startActivity(intent);
    }
});

이렇게 말인가요??ㅠㅠ 제가 왕초보라서...
이렇게 하면 holder에 빨간줄 생기면서 변수 생성 등등 의 방법들이 뜨는데요, 어떻게 하면 될지 조금만 더 도와주시면 정말 감사하겠습니다.!
Ctrl+Shift + O(알파벳) 눌러서 import 제대로 되었는지 확인해보시고
그래도 잘 안되면 수정된 소스를 다시 올려보시기 바랍니다.
와 holder가 아래쪽에 선언되어서 안되었던거였어요!!
정말 감사합니다.
새해 복 많이 받으세요!!
...