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

正在回答

6 回答

bug已经找到,请按照如下方法修改:

MyGridView.java中的getiew(int pos, View v, ViewGroup p)方法:

原代码:

               

holder.mViewButton = (Button)v.findViewById(R.id.item_btn);
holder.mViewButton.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
          // 回调
          mWordButtonListener.onWordButtonClick(holder);
     }
});


修改后代码:               

if (holder.mViewButton == null) {
    holder.mViewButton = (Button)v.findViewById(R.id.item_btn);
    holder.mViewButton.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
              // 回调
              mWordButtonListener.onWordButtonClick(holder);
         }
    });
}


解释:

增加条件判断


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

这个是程序中的一个bug,我也发现了,解决后我会做相应更新并回复你,谢谢!

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

一个好看的名字

老师可以解释下?看不懂! 谢谢
2015-05-30 回复 有任何疑惑可以回复我~

可是这样修改以后文字动画没了.....

0 回复 有任何疑惑可以回复我~
<p color="red">Android中的Adapter内,有getView方法. 假设你自己定义的某个ListView 或者GridView,有可能在程序运行中修改它们的Item的高度,那么此时getView将被回调.于是就出现position=0的情况. 因为出现这种情况,并且此时item内的对象的引用与正确的position=0是不一样的,它不过一个临时的对象而已. 所以,要加个条件来判断此时是否不是临时的position=0. if (parent.getChildCount() == position) { //里面就是正常的position } else { //临时的position=0 }
</p>

这是我网上搜到的原因,不知道对不对,但是我运行的是可以解决第一个按钮不隐藏的问题;

代码还可以改为

public View getView(final int position, View convertView,ViewGroup parent)这个getView参数

if (parent.getChildCount() == position) {
holder.mViewButton = (Button)v.findViewById(R.id.item_btn);
    holder.mViewButton.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
              // 回调
              mWordButtonListener.onWordButtonClick(holder);
         }
    });
}


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

没理解这段代码没理解 怎样实现第一个button隐藏的功能 老师能解释下么


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

恩恩,我知道了。还有一个问题就是已选框的大小不能改变吗?如果超过4个字的就会显示不全。比如6个字的在我手机上就只能显示4个可以被看见

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

举报

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

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

进入课程
意见反馈 帮助中心 APP下载
官方微信