完成(关闭)触摸的Android活动

问题描述:

如何在触摸的Adroid中终止活动。在这里,我显示了detail.xml中描述的视图。我需要关闭触摸式活动。我试了下面的代码。但它不工作。有任何想法吗?如果在视图层次结构的手指下没有其他的观点已经消耗的事件完成(关闭)触摸的Android活动

public class Details extends Activity { 
    protected void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.details); 
    } 
    public boolean onTouchEvent(MotionEvent event){ 
     this.finish(); 
     return true; 
    }  
} 
+0

你确定onTouchEvent被调用吗? API文档提到,如果没有任何子视图消费该事件,它将仅作为最后的手段被调用。 – mmeyer 2011-04-11 18:56:19

+0

我认为它没有被调用。你有任何想法如何将“onTouchEvent”添加到即时通讯使用的视图。因为这里我使用它从一个XML。 – dinesh707 2011-04-11 18:58:00

  1. 你的onTouchEvent()才会被调用。这是不常见的,因为许多视图确实与触摸事件相互作用。

  2. 在onTouchEvent()中做东西而不看实际事件是错误的。

  3. 通常你应该实现一个视图,对触摸做出反应并做适当的事情。

+0

你能检查这个:http://stackoverflow.com/questions/5628687/problem-in-android-creating-a-view-dynamically – dinesh707 2011-04-11 23:19:59

您应该使用

@Override 
public boolean dispatchTouchEvent(MotionEvent ev) { 
    finish(); 
    return super.dispatchTouchEvent(ev); 
} 

你没在的onCreate安装监听器()。像: findViewById(R.id.some_view).setOnTouchListener(this);

+0

他不需要一个。当屏幕本身被触摸时,他正试图使其关闭。 – uyuyuy99 2014-10-07 02:03:06