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

    }

}
4

2 に答える 2

1

単純に使用してみませんか:

public void onBackPressed() {
       //desired functionality here 
       return;
    }
于 2012-05-13T06:36:36.400 に答える
0

onKeyDownロジックを実装に移動OnKeyListenerし、ビューのコンストラクターに登録します。

于 2012-05-13T06:35:21.633 に答える