Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(内部ブラウザからアプリへ戻った時のBackキー動作)
閲覧数:698
掲示板(内部ブラウザからアプリへ戻った時のBackキー動作)
名前
匿名
題名 内部ブラウザからアプリへ戻った時のBackキー動作
質問内容

質問を評価する
(0ポイント)
皆さま初めまして最近Javaを勉強し始めたばかりの初心者です。

アプリからwebViewを使い内部ブラウザを表示させてアプリ内に戻る。
という動作を行おうとしたのですが、Backキーを押すとアプリが落ちてしまいました。
色々調べて
        public boolean onKeyDown( int keyCode, KeyEvent event ) {
        //WebViewインスタンスを取得
         WebView webview = (WebView)findViewById(R.id.webview1);

        if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack() == true) {
         webview.goBack();
        return true;
        }
        return super.onKeyDown(keyCode, event);        
        }
という記載を見つけたので、これを使い内部ブラウザ内の動作ではアプリが落ちないようにする事が出来たのですが、今度はアプリ画面へ戻る時にアプリが落ちるようになりました。
そのため、「return super.onKeyDown(keyCode, event);」を「retrun false」にし、その前にsetContentView(R.layout.activity_main);を入れてアプリのTOP画面を描写しアプリ動作へ戻ろうとしたのですが、今度は描画だけで動作を行わなくなってしまいました。
お手数ではありますが、宜しければwebViewからアプリへ戻る動作を御教授下さい。
質問日時 2013-04-10 23:22:39
名前
匿名
回答内容

回答を評価する
(0ポイント)
アプリ実装の構成がよく分からないのでなんともなのですが、
アプリ画面とWebView画面を別々のActivityで実装しているなら
WebView画面のActivityを終了(finish)させるか、
アプリ画面のActivityへインテントを発行して遷移するのではないでしょうか。

(しばらくAndroidアプリのコード書いて無いので的外れかもしれませんが)
回答日時 2013-04-11 11:27:53
名前
匿名
回答内容

回答を評価する
(0ポイント)
御回答ありがとうございます
両方ともMainActivity内で実装しております
お恥ずかしい話しですが、別のActivityで実装し
た時にMainActivityで呼び出す方法が分からな
いので同一のActivity内で行っています
回答日時 2013-04-11 15:27:32
名前
匿名
回答内容

回答を評価する
(0ポイント)
なるほどー
単一Activityでのレイアウト切替えは状態制御に
気を使わないといけない局面が出てきます。

※現在どのレイアウトが適用されているかでActivity内の
 各イベントコールバック処理(onStart, onResumeなど)内で処理をスイッチさせる・・・ etc..

レイアウトの状態が切り替わった後なので、
参照できない要素をfindViewByIdなどで参照していたりしませんか?
LogCatに何か警告 or 例外が出ていると良いのですがどうでしょうか。
回答日時 2013-04-11 16:22:30

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道