2009-08-27 2 views
0

В моем приложении я переопределяю функции по умолчанию backkey по умолчанию для Android (по сравнению с onridedown) .its работает отлично. Но когда компоненты spinner по умолчанию выбирают окна и виртуальную клавиатуру (в Android 1.5), войдите в Экран по умолчанию назад функции клавиш рухнули из-за моего переопределения.проблема в функции переопределения по умолчанию backkeys

есть ли способ решить эту проблему? или как называется окно virtualkeypadwindow и spinner components? Благодарю. , ,

+0

наставит меня, чтобы закончить мою проблему ... – arams

+0

1.Progress Dialog 2 .Virtual Keypad 3.Spinner Component's/AlertDialog Как мы можем знать, что такие диалоги открыты в screeen, любой возможный способ сделать эти вещи программно? – arams

ответ

1

Проблема в том, что на экране есть Dialog, что на самом деле является полностью отдельным Управлением, помощники диалога просто скрывают его от вас. Существует всего 2 способа решить эту проблему (в зависимости от того, что вы пытаетесь сделать).

Вы можете расширить тип диалога, который вы используете, и переопределить onKeyPress внутри производного класса, а затем использовать его вместо диалогового окна по умолчанию в системе.

public class MyDialog extends ProgressDialog { 
    /* ... */ 

    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      // handle the keypress 
      return true; 
     } 
     return false; 
    } 
} 

Вы могли бы начать вверх Диалоги с опцией досрочного затем поймать отменить действие ... что-то вроде:

public class MyActivity implements OnCancelListener { 
    /* ... */ 

    public void startDialog() { 
     ProgressDialog pd = ProgressDialog.show(
      MyActivity.this, // Context 
      "Progress Title", // title for dialog 
      "Progress Message", // message for dialog 
      true,    // indeterminate? 
      true,    // cancellable? 
      this    // onCancelListener() 
     ); 
    } 

    @Override 
    public void onCancel(DialogInterface dialog) { 
     // the user canceled out of the load dialog (hit the 'back' button)... do something here 
    } 
} 
+0

Спасибо Fixedd ... но в ANDroid1.5 VirtualKeypad? Как я могу справиться с этим? ... – arams

Смежные вопросы