为了账号安全,请及时绑定邮箱和手机立即绑定

已选文字不起作用onWordButtonClick在哪调用的?

public void onWordButtonClick(WordButton wordButton){} 请问,这个方法在哪调用的?onCreate里吗?  wordButton没有下标,参数怎么获取的?

正在回答

2 回答

在内部类gridAdapter里调用的,我给你一下我写的整个项目源码吧,感觉有用的话请给个Star.

 https://github.com/caobotao/GussMusics

public class WordGridView extends GridView {    
private gridAdapter mAdapter;    
private Animation mScaleAnimation;    
private IWordButtonClickListener mWordButtonClickListener;    
public static final int WORDS_COUNT = 24;    
public WordGridView(Context context) {    
this(context,null);    
}    
public WordGridView(Context context, AttributeSet attrs) {    
this(context, attrs,0);    
}    
public WordGridView(Context context, AttributeSet attrs, int defStyleAttr) {    
super(context, attrs, defStyleAttr);    
}    
//更新文字框数据    
public void updateData(ArrayList<WordButton> list) {    
//重新设置数据源    
mAdapter = new gridAdapter(this.getContext(),list);    
this.setAdapter(mAdapter);    
}    
//注册文字按钮的点击事件    
public void setWordButtonClickListener(IWordButtonClickListener mWordButtonClickListener) {    
this.mWordButtonClickListener = mWordButtonClickListener;    
}    
class gridAdapter extends BaseAdapter {    
private Context mContext;    
private LayoutInflater mInflater;    
private ArrayList<WordButton> list;    
public gridAdapter(Context context,ArrayList<WordButton> list) {    
mContext = context;    
mInflater = LayoutInflater.from(context);    
this.list = list;    
}    
@Override    
public int getCount() {    
return list.size();    
}    
@Override    
public Object getItem(int position) {    
return list.get(position);    
}    
@Override    
public long getItemId(int position) {    
return position;    
}    
@Override    
public View getView(int position, View convertView, ViewGroup parent) {    
final WordButton holder;    
if (convertView == null) {    
mScaleAnimation = AnimationUtils.loadAnimation(getContext(), R.anim.scale);    
mScaleAnimation.setStartOffset(position * 50);    
convertView = mInflater.inflate(R.layout.gridview_item, null);    
/**    
                 * 添加判空,否则点击GridView的第一个按钮不会隐藏    
                 */    
holder = list.get(position );    
holder.setIndex(position);    
if (holder.getButton() == null) {    
holder.setButton((Button) convertView.findViewById(R.id.item_btn));    
holder.getButton().setText(holder.getWordString());    
holder.getButton().setOnClickListener(new OnClickListener() {    
@Override    
public void onClick(View v) {    
mWordButtonClickListener.onWordButtonClick(holder);    
}    
});    
}    
convertView.setTag(holder);    
} else {    
holder = (WordButton) convertView.getTag();    
}    
convertView.startAnimation(mScaleAnimation);    
return convertView;    
}    
}    
}


0 回复 有任何疑惑可以回复我~

你在WordGridView这个类中调用这个回调方法了吗?

holder.getButton().setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        mWordButtonClickListener.onWordButtonClick(holder);
    }
});


0 回复 有任何疑惑可以回复我~
#1

Sawano

这个是加在哪儿的啊
2016-03-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android猜歌游戏是这样炼成的
  • 参与学习       27735    人
  • 解答问题       422    个

手把手教你完成一款猜歌类游戏,向你展示游戏实现的全部细节

进入课程

已选文字不起作用onWordButtonClick在哪调用的?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信