2012-05-13 6 views
1

これで、ダイアログ内にカスタムビューがありますが、そのonKeyDownが呼び出されることはありません。私もonKeyPreImeを試してみましたが、うまく動作せず、ダイアログのsetCancelableをtrueに設定してもどちらも役に立ちませんでした。ダイアログのカスタム表示でのバックキーの処理

編集:

//Removed all unnecessary code 

public class CustomView extends LinearLayout 
{  

    @Override 
    public boolean onKeyDown (int keyCode, KeyEvent event) 
    { 
      if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) 
      {   
        //do stuff here 
        return true; 

      }  
      return super.onKeyDown(keyCode, event);   
    } 
} 
public class CustomDialog 
{ 
    Dialog dialog; 
    public class CustomDialog(Context context) 
    { 
     dialog = new Dialog(context); 
     dialog.setContentView(R.layout.test);// the test.xml has CustomView 

    } 

} 
+0

あなたが望む機能は何ですか?いくつかのコードを投稿してください。あなたのコードがあなたの言葉から何をするかははっきりしていません。 –

+0

完了、デモコードを追加しました – xmen

答えて

0
OnKeyListener実施にご onKeyDownロジックを移動し、あなたのビューのコンストラクタに登録

+0

試しましたが、うまくいっていません – xmen

+0

これはDialogのKeyListenerを使用する必要があり、呼び出されました。 – xmen

1

は、なぜあなたは、単に使用しないでください。

public void onBackPressed() { 
     //desired functionality here 
     return; 
    } 
+0

私が間違っていない場合は、アクティビティ内ではなく、ビュー内で動作します。私はAndroid 1.6を使用していますが、そのイベントはありません。 – xmen

+0

最終的にあなたの 'View'は' Activity'の権利として使われますか? –

+0

それ以外の答えがある場合は、onKeyDownに 'onKeyListener'を使用してください。 –

関連する問題