猜歌游戏 四

来源:互联网 发布:vue.js event.target 编辑:程序博客网 时间:2024/06/05 03:27

GridViewAdapter:

** * GridView的适配器 */public class GridViewAdapter extends BaseAdapter {    private List<WordButton> mList;    private Context mContext;    private Animation mScaleAnimation;    private IWordButtonClickListener Listener;//自定义一个监听器    private boolean isFirst = true;    //构造方法    public GridViewAdapter(List<WordButton> pList, Context pContext) {        mList = pList;        mContext = pContext;    }    @Override    public int getCount() {        return mList.size();    }    @Override    public Object getItem(int i) {        return mList.get(i);    }    @Override    public long getItemId(int i) {        return i;    }    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        final WordButton mHolder;        if (view == null) {            mHolder = new WordButton();            // 加载动画            mScaleAnimation = AnimationUtils.loadAnimation(mContext, R.anim.scale);            mScaleAnimation.setStartOffset(i * 100);   // 设置动画的延迟时间            //加载布局文件            view = LayoutInflater.from(mContext).inflate(R.layout.gridview_item, null);            mHolder.mButton = (Button) view.findViewById(R.id.item_btn);            mHolder.mWordString = mList.get(i).mWordString;            mHolder.mIndex = i;            view.setTag(mHolder);        } else {            mHolder = (WordButton) view.getTag();        }        mHolder.mButton.setText(mList.get(i).mWordString);        //Log.i("===",(mList.get(i).mIsVisiable)+"");        if ((mList.get(i).mIsVisiable)) {            mHolder.mButton.setVisibility(View.VISIBLE);        } else {            mHolder.mButton.setVisibility(View.INVISIBLE);        }        mHolder.mButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //点击按钮调用MainActivity通过buttonListener传过来的方法                Listener.onWordButtonClick(mHolder);            }        });        //游戏开始的时候运行进入动画        if (isFirst) {            view.startAnimation(mScaleAnimation);        }        if (i == 23) {            isFirst = false;        }        return view;    }    /**     * 提供其他类来注册这个监听器     */    public void buttonListener(IWordButtonClickListener listener) {        Listener = listener;    }}

0 0