如何在轮播的图片上添加点击事件

我想在轮播的图片中添加点击事件,点击图片就可以转到另一个Activity,应该怎么实现呢?下面是实现图片轮播的代码,我在了Fragment内(代码转载自:http://blog.youkuaiyun.com/l1028386804/article/details/48049913


package com.example.qsxy;



import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;


import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;


public class ecardFragment extends Fragment {

//图片自动轮播
private ViewPager mViewPaper;
private List<ImageView> images;
private List<View> dots;
private int currentItem;
//记录上一次点的位置
private int oldPosition = 0;
//存放图片的id
private int[] imageIds = new int[]{
R.drawable.login240_320,
R.drawable.relx,
R.drawable.qidongjiemian,
R.drawable.qidong_240_320,
R.drawable.logo1
};
//存放图片的标题
private String[]  titles = new String[]{
        "巩俐不低俗,我就不能低俗",
        "扑树又回来啦!再唱经典老歌引万人大合唱",
        "揭秘北京电影如何升级",
        "乐视网TV版大派送",
        "热血屌丝的反杀"
        };
private TextView title;
private PagerAdapter adapter;
private ScheduledExecutorService scheduledExecutorService;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.yikatong_layout, container, false);
}
// @Override
// public void onCreate(Bundle savedInstanceState) {
// // TODO Auto-generated method stub
// super.onCreate(savedInstanceState);
//
// }


@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
mViewPaper = (ViewPager) getActivity().findViewById(R.id.vp);


//显示的图片
images = new ArrayList<ImageView>();
for(int i = 0; i < imageIds.length; i++){
ImageView imageView =new ImageView(getActivity());
imageView.setBackgroundResource(imageIds[i]);
images.add(imageView);

}

//显示的小点
dots = new ArrayList<View>();
dots.add(getActivity().findViewById(R.id.dot_0));
dots.add(getActivity().findViewById(R.id.dot_1));
dots.add(getActivity().findViewById(R.id.dot_2));
dots.add(getActivity().findViewById(R.id.dot_3));
dots.add(getActivity().findViewById(R.id.dot_4));
//显示的文字
title = (TextView) getActivity().findViewById(R.id.title);
title.setText(titles[0]);

adapter = new ViewPagerAdapter();
mViewPaper.setAdapter(adapter);

mViewPaper.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {



@Override
public void onPageSelected(int position) {
title.setText(titles[position]);
dots.get(position).setBackgroundResource(R.drawable.dot_focused);
dots.get(oldPosition).setBackgroundResource(R.drawable.dot_normal);

oldPosition = position;
currentItem = position;
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override
public void onPageScrollStateChanged(int arg0) {

}
});
}
/**
// * 自定义Adapter
// * @author liuyazhuang
// *
// */
private class ViewPagerAdapter extends PagerAdapter{


@Override
public int getCount() {
return images.size();
}


@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}


@Override
public void destroyItem(ViewGroup view, int position, Object object) {
// TODO Auto-generated method stub
// super.destroyItem(container, position, object);
// view.removeView(view.getChildAt(position));
// view.removeViewAt(position);
view.removeView(images.get(position));
}


@Override
public Object instantiateItem(ViewGroup view, int position) {
// TODO Auto-generated method stub
view.addView(images.get(position));
// for(int i=0;i<imageIds.length;i++){
// imageIds[i]=i;
// if(position==imageIds[i]){
// View v=images.get(position);
// v.setOnClickListener(new OnClickListener() {
//
// @Override
// public void onClick(View arg0) {
//  Intent intent = new Intent(getActivity(), Aa.class);
//  getActivity().startActivity(intent);
// }
// });
// }
//
// }

return images.get(position);
}

}

/**
* 利用线程池定时执行动画轮播
*/
@Override
public void onStart() {
// TODO Auto-generated method stub
super.onStart();
scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
scheduledExecutorService.scheduleWithFixedDelay(
new ViewPageTask(), 
3, 
3, 
TimeUnit.SECONDS);


}


/**
* 图片轮播任务
* @author liuyazhuang
*
*/
private class ViewPageTask implements Runnable{


@Override
public void run() {
currentItem = (currentItem + 1) % imageIds.length;
mHandler.sendEmptyMessage(0);
}
}

/**
* 接收子线程传递过来的数据
*/
private Handler mHandler = new Handler(){
public void handleMessage(android.os.Message msg) {
mViewPaper.setCurrentItem(currentItem);
// int i=mViewPaper.getCurrentItem();
// for(int j=0;i<imageIds.length;i++){
// if(i==imageIds[j]){
//
// }
// }
// };
}
};
@Override
public void onStop() {
// TODO Auto-generated method stub
super.onStop();
if(scheduledExecutorService != null){
scheduledExecutorService.shutdown();
scheduledExecutorService = null;
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值