数独设计(3)
2015-09-24 15:25
183 查看
这个类是定义触摸事件,获取坐标X,Y。
在View类中,覆写onTouchEvent(MotionEvent event)方法。
继承Dialog类,自定义一个dialog
问题总结:
今天遇到的问题比较多,大多是书上找不到的,都是一些细小的问题,以后要多多留意细节,不然整天被细节卡住。
在View类中,覆写onTouchEvent(MotionEvent event)方法。
public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub if(event.getAction() != MotionEvent.ACTION_DOWN) { return super.onTouchEvent(event); } selectX = (int)(event.getX()/width);//获得触摸点在格子中的的x坐标 selectY = (int)(event.getY()/height);//获得触摸点在格子中的y坐标 int[] used = game.getUsedTile(selectX, selectY);//获得已经使用了的数据,这样就可以知道哪些数字不能用了 StringBuffer sb = new StringBuffer(); for(int i = 0; i<used.length; i++) { sb.append(used[i]); } Log.i("TAG", sb.toString());//调试输出不可用的数据 }
继承Dialog类,自定义一个dialog
package com.mars.demo; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.util.Log; import android.view.View; public class KeyDialog extends Dialog { private int[] used; private View[] keys = new View[9]; private MyView myView; public KeyDialog(Context context ,int[] used , MyView myView) { super(context); this.used = used; this.myView = myView; // TODO Auto-generated constructor stub } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setTitle("KeyDialog"); setContentView(R.layout.keypad); findAllViews(); for(int i=0; i<this.used.length; i++) { if(used[i] != 0) { keys[used[i]-1].setVisibility(View.INVISIBLE); } } setListener(); } //初始化9个按钮 public void findAllViews() { keys[0] = findViewById(R.id.keypad_1); keys[1] = findViewById(R.id.keypad_2); keys[2] = findViewById(R.id.keypad_3); keys[3] = findViewById(R.id.keypad_4); keys[4] = findViewById(R.id.keypad_5); keys[5] = findViewById(R.id.keypad_6); keys[6] = findViewById(R.id.keypad_7); keys[7] = findViewById(R.id.keypad_8); keys[8] = findViewById(R.id.keypad_9); } //为按钮设置监听器 public void setListener() { for(int i = 0; i<keys.length; i++) { final int t = i+1; keys[i].setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub returnResult(t); } }); } } //对话框将选择的数据传递给View对象,让其处理业务逻辑 public void returnResult(int tile) { myView.setSelectTile(tile); dismiss(); } }
问题总结:
今天遇到的问题比较多,大多是书上找不到的,都是一些细小的问题,以后要多多留意细节,不然整天被细节卡住。
相关文章推荐
- 轻松征服Ruby--笔记(2)
- interview 01
- 网络调试的几个命令
- android四大组件总结
- 西门子PLC学习笔记8-(计时器)
- mysql主主+keepalived高并发高负载情况测试数据一致性问题
- <javascript高级程序设计>笔记
- Swift优雅的实现枚举的定义及使用
- java学习3-选择排序对数组排序
- MySQL 中 INSERT 的一般用法
- linux问题 处理
- boost库用property_tree读xml文件
- android生命周期(详细总结)
- SpringMVC访问静态资源的三种方式
- 正则表达式判断支付宝输入的钱数
- python应用之求主析取范式,主合取范式
- CentOS6.4系统启动失败故障排查
- PHP易混淆知识整理笔记
- 研究pixhawk的makefile的结构(2)
- 【Java语言】基础知识一