触摸android后关闭视图

时间:2012-09-13 08:06:59

标签: android ontouchlistener

按下信息按钮后,我显示了一个Activty。现在,当用户触摸屏幕时,我想关闭/销毁激活,以便用户可以再次返回主激活,而无需按下设备的后退按钮。代码如何。

我尝试了这个,但它没有效果:

if(onTouchEvent(null)){
        finish();
}

感谢。


编辑:

这是我的全部代码:

public class InfoDialog extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.info_dialog); }

我使用这个类只是为了在Android主题的Theme.Dialog中显示关于App的简短信息  但是,我想添加一个功能,在按下触摸屏时销毁/关闭此激活,这样就不需要按下后退按钮了。

3 个答案:

答案 0 :(得分:1)

你应该覆盖onTouch(View v,MotionEvent事件) 类似的东西:

onTouch(View v, MotionEvent event){
   switch (event.getAction()) {
      case MotionEvent.ACTION_DOWN:
         finish();
   }
}

答案 1 :(得分:1)

试试这个......

LinearLayout mainLayout = (LinearLayout) findViewById(R.id.mainLayoutId);

mainLayout.setOnTouchListener(new OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                int eid = event.getAction();
                switch (eid) {
                case MotionEvent.ACTION_DOWN:
                    finish();
                    break;
                }
                return true;
            }
        });

答案 2 :(得分:0)

为该视图提供显示您的信息的ID。然后在该视图上设置onTouch侦听器,如果使用activity,则完成活动或使用可见性然后使其不可见。

main = (RelativeLayout) findViewById(R.id.main);
main.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                        case MotionEvent.ACTION_DOWN:
                finish();
            }
        }

info = (RelativeLayout) findViewById(R.id.info);

info = (RelativeLayout) findViewById(R.id.info);
info.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                         case MotionEvent.ACTION_DOWN:
                info.setVisibilty(View.GONE);
            }
        }