我在Android中设计了一个使用64个按钮的国际象棋棋盘。但是在设计之后,我面临很多问题,因为我需要实现64个OnClickListeners。有没有其他方法可以使用for
循环来实现OnClickListener,或者使用按钮设计棋盘是不正确的?设计象棋android中的用户界面
回答
是的,可以遍历按钮并为每个按钮添加一个侦听器。里面你的循环,你会做这样的事情:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Handle click events...
}
});
但每个按钮都有不同的名称(如a1,a2..a8,b1,b2 ... b8),如何在循环中用作按钮ID – 2013-03-04 17:40:25
本文有一些关于如何做到这一点的好信息: http://stackoverflow.com/questions/4809834/how-to-iterate-through-a-views-elements – elevine 2013-03-04 17:51:55
我创建了TableLayout 8个表格,每个表格包含LinearLayout.so中的8个按钮,该帖子中给出的答案将会检查所有这些儿童(包括按钮)或不? – 2013-03-04 18:06:55
你应该看看developer samples,它使用了基于网格的游戏板自定义视图特别是井字应用程序。你应该能够扩展这个想法。
如果您想要继续使用每个方块的按钮,您必须知道它们的ID才能创建onClickListener
s。有两种方法可以解决这个问题。
要么添加onClickListener在布局XML:
<Button
parameters...
onClick="myOnClick"
</
在你Activity
那么您可以创建方法myOnClick:为按钮解决方案
public void myOnClick(View clickedView){
//code
}
一个可能更好的方式是创建它们从代码中取出并创建xml按钮并添加到当前内容中,或者使用相应的java类创建新按钮:Button myButton e3 = new Button(context);
如果你真的想要64个独立的视图,你不需要64个单独的onClickListeners;只需在XML中为视图指定一个onClick属性,全部使用与关联活动相同的方法。然后,您可以在构建时生成一个表来将ID映射到坐标,或者您可以使用您自己的属性将坐标添加到每个视图。
但是,它会为您的棋盘提供单一视图更有意义。这个视图将自己划分为64个方格,维护一个内部表格,指示哪些部分在哪里,在其.onDraw()
中绘制正方形和棋子,并在点击时确定点击哪个方块来进行数学运算。在sample Snake应用中研究TileView.java
;一旦你了解了这些代码,你就可以轻松地与你的课程相关联。
- 1. Android中的用户界面设计
- 2. C++抽象用户界面设计
- 3. 在android中设计国际象棋
- 4. Android界面设计
- 5. Android界面设计
- 6. iPhone用户界面设计
- 7. Flex中的用户界面设计
- 8. 象棋的设计问题
- 9. 如何在Android中设计复杂的用户界面
- 10. 设计Android应用程序的用户界面
- 11. 用户界面设计工具
- 12. iPad用户界面设计建议
- 13. 状态设计模式用户界面
- 14. 用户界面设计TableView喜欢
- 15. Microsoft Access用户界面设计
- 16. UI设计/用户界面组件
- 17. 关于Android用户界面设计的书籍
- 18. Android Studio用户界面使用设计或文本?
- 19. 面向对象的国际象棋游戏设计
- 20. java中的棋盘和棋子设计
- 21. 设计Android用户界面:Textview文本不会更改
- 22. Android:如何正确设计用户界面
- 23. 纽约时报For Android平板电脑用户界面设计
- 24. Android的webview用户界面
- 25. android的用户界面webview
- 26. 有趣的计算设计用户界面的东西
- 27. Java界面设计
- 28. Android搜索界面和材质设计
- 29. android用户界面错误
- 30. Android用户界面组件
仅仅因为99%的例子使用了“OnClickListener”的匿名子类并不意味着你必须这样做。用一个在类中存储x,y的类和一个用x,y作为参数的构造函数对它进行子类化。 – martijno 2013-03-04 17:38:30