按下信息按钮后,我显示了一个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的简短信息 但是,我想添加一个功能,在按下触摸屏时销毁/关闭此激活,这样就不需要按下后退按钮了。
答案 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);
}
}