Android iew 的onTouch事件中,长按、左右滑动和点击判断

本文介绍了在Android开发中如何在View的onTouch事件中实现长按、左右滑动和点击的判断。通过监听MotionEvent,分别处理了按下、移动和释放等状态,从而实现复杂触摸交互。
摘要由CSDN通过智能技术生成

在Android的开发中要对一个View长按、滑动、和点击同时进行,在View的onTouch事件中做了以下的工作:

float xDown,yDown,xUp;  
boolean isLongClickModule = false;
boolean isLongClicking = false;
myView.setOnTouchListener(new OnTouchListener() {  
          public boolean onTouch(View v, MotionEvent event) {  
	            //当按下时处理  
	            if (event.getAction() == MotionEvent.ACTION_DOWN) {  
	            	xDown= event.getX();  
	            	yDown = event.getY();
		        Log.v("OnTouchListener", "Down");  
         
	            } else if (event.getAction() == MotionEvent.ACTION_UP) {// 松开处理  
		            //获取松开时的x坐标  
	            	if(isLongClickModule){
	            		  isLongClickModule = false;
	            		  isLongClicking = false;
		            }
		            xUp = event.getX(); 
		          
		            Log.v("OnTouchListener", "
要实现这个功能,你需要在 SWT 使用 Table 类和 TableItem 类。首先,你需要创建一个 Table 控件,然后添加 TableItem。每个 TableItem 代表一个单元格,你可以在其添加文本或图像等内容。接下来,你需要为 Table 控件添加 SelectionListener,以便在用户单击表格项时触发事件。在事件处理程序,你可以获取所选项的索引,然后使用该索引打开相应的视图。 下面是一个示例代码片段: ```java Table table = new Table(shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL); table.setLinesVisible(true); table.setHeaderVisible(true); TableColumn column1 = new TableColumn(table, SWT.NONE); column1.setText("Column 1"); TableColumn column2 = new TableColumn(table, SWT.NONE); column2.setText("Column 2"); for (int i = 0; i < 10; i++) { TableItem item = new TableItem(table, SWT.NONE); item.setText(new String[] {"Item " + i, "Description for Item " + i}); } table.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { TableItem[] selection = table.getSelection(); if (selection.length > 0) { int index = table.indexOf(selection[0]); // 打开相应的视图 } } }); ``` 在此示例,我们创建了一个带有两个列的表格,并向其添加了 10 个 TableItem。当用户单击表格的任何项时,将触发 widgetSelected 事件处理程序。在此处理程序,我们获取所选项的索引,然后可以使用该索引打开相应的视图。 希望这可以帮助你实现所需的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值