2010-11-02 78 views
1

我刚才在此改变我的背扣在我的代码是这样重写返回按钮操作在活动

 @Override 
     public boolean onKeyDown(int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_BACK) { 

       return true; 
      } 
      return super.onKeyDown(keyCode, event); 
     } 

     @Override 
     public boolean onKeyUp(int keyCode, KeyEvent event) 
      { 

       { 
         startActivity(new Intent(context, MainDialog.class)); 
         finish(); 

       return true; 
      } 
      return super.onKeyUp(keyCode, event); 
     } 

现在我面临着一个奇怪的问题,我 对当前活动编辑文本。 在编辑时,当我试图通过按下后退 按钮关闭虚拟键盘时。 我的应用程序完成... 但我只想关闭键盘不是Avtivity .. 任何建议来解决我的问题..?

由于提前, Tanmay


I have tried both 

     @Override 
    public boolean onKeyUp(int keyCode, KeyEvent event) 
     { 
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 

       startActivity(new Intent(context, MainDialog.class)); 
       finish(); 
       return true; 
     } 
     return super.onKeyUp(keyCode, event); 
    } 

 @Override 
    public boolean onKeyUp(int keyCode, KeyEvent event) 
     { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 

       startActivity(new Intent(context, MainDialog.class)); 
       finish(); 
       return true; 
     } 
     return super.onKeyUp(keyCode, event); 
    } 

但没有结果。 任何建议!

+0

可能duplicat:http://stackoverflow.com/questions/2592037/is-there-a-default-back-keyon-device-listener-in-android – Praveen 2010-11-02 05:20:16

回答

4

看来你错过了捕获后面密钥的if语句。试试这个:

@Override 
    public boolean onKeyUp(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      startActivity(new Intent(context, MainDialog.class)); 
      finish(); 
      return true; 
     } 
     return super.onKeyUp(keyCode, event); 
    } 
0

还有一个可能的解决方案,我们可以这样做......

我必须在XML 我对btnBack得到的是保持ID buttonBack的ImageButton的并添加OnClickListener

在公共无效的onClick函数我调用类的意图是有另一种布局可能是前一个类...希望这对所有工作...谢谢。

ImageButton btnBack = (ImageButton)this.findViewById(R.id.buttonBack); 
    btnBack.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
     Intent myIntent = new Intent(view.getContext(), Your.class); 
        startActivityForResult(myIntent, 0); 

     } 
    });