for (int toShow = 1; toShow <= nShips; toShow++) { btn = new button(this); btn.setBackgroundResource(shipDrawable.get(ima)); btn.setLayoutParams(params); row[pos].addVIEw(btn); btn.setID(shipID.get(ima)); if (row[pos].getChildCount() == 3) pos++; ima++; }
我需要知道每个按钮的身份,因为彼此有不同的动作.然后,我尝试像这样设置onClick@R_301_6818@ener:
btn.setonClick@R_301_6818@ener(new OnClick@R_301_6818@ener() { @OverrIDe public voID onClick(VIEw btn) { switch(btn.getID()){ case 1000: System.out.println("FirsT"); break; case 1004: System.out.println("FOURTH"); break; } } });
但它不起作用.似乎onClick@R_301_6818@ener只影响最后创建的项目.如果我创建了四个按钮,则只有第四个按钮会有一个onClick@R_301_6818@ener.
如何让我的点击监听器工作?
解决方法 你可以这样做:OnClick@R_301_6818@ener @R_301_6818@ener = new OnClick@R_301_6818@ener() { @OverrIDe public voID onClick(VIEw btn) { switch(btn.getID()){ case 1000: System.out.println("FirsT"); break; case 1004: System.out.println("FOURTH"); break; } } };for (int toShow = 1; toShow <= nShips; toShow++) { btn = new button(this); // Set the click @R_301_6818@ener to all your buttons btn.setonClick@R_301_6818@ener(@R_301_6818@ener); btn.setBackgroundResource(shipDrawable.get(ima)); btn.setLayoutParams(params); row[pos].addVIEw(btn); btn.setID(shipID.get(ima)); if (row[pos].getChildCount() == 3) pos++; ima++; }
干杯,Yuvi
总结以上是内存溢出为你收集整理的android – setOnClickListener动态全部内容,希望文章能够帮你解决android – setOnClickListener动态所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)