2012-08-26 4 views
7

私のアプリは完全にC/C++で書かれています。NativeActivityを使用していますが、Javaコードはありません( "native-activity" NDKの例に基づいています)。 「戻る」ボタンを押すと閉じます(アクティビティを破棄します)。私はOpenGL経由で表示される独自のUIとメニューを持っているので、このボタンの他​​の動作が必要です。Android NDK:JavaなしでNativeActivityでonBackPressedをオーバーライドする方法

As I read "戻る"ボタンの動作を変更するには、JavaアクティビティクラスのonBackPressed()メソッドをオーバーライドする必要があります。しかし、私はJavaを使っていないので、C/C++からこのメソッドをオーバーライドすることができますか?

いいえ、NDKを使用して「戻る」ボタンを使用する別の方法は、Javaコードなしですか?

+0

NativeActivityはJavaクラスです!!あなたはあなたがそれを使っていると言ったので、その中のonBackPressedを上書きすることができますか? –

+0

いいえ、私は "native-activity" NDKの例のように使っています:android_native_app_glue.h、 'struct android_app'など –

答えて

12

解決:「戻る」ボタンをデフォルトのを防ぐためにbehaivorキーイベントを処理しながら、1を返すために十分である:

int32_t app_handle_event(struct android_app* app, AInputEvent* event) { 
    if (AKeyEvent_getKeyCode(event) == AKEYCODE_BACK) { 
     // actions on back key 
     return 1; // <-- prevent default handler 
    }; 
    // ... 
    return 0; 
} 
関連する問題