1

メイン コンテンツの webview を読み込むアプリを作成しています。いくつかのリンクを提供するメニュー インフレータがあります。メニュー インフレータを警告ラベルとして使用しています。「このページを離れてもよろしいですか?」しかし、ユーザーがこのページを離れたくない場合は、戻るボタンを押して webview に戻ることができるようにします。私が抱えている問題は、戻るボタンがアクティビティを再開し、Web ページをリロードすることです。

バンドル内の savedContentState をメニュー クラスに送信しようとしましたが、戻るボタンを押したときにそれを Web ビューに適用する方法がわかりません。

メインクラス:

protected void onRestoreInstanceState(Bundle savedInstanceState) {

    super.onRestoreInstanceState(savedInstanceState);
    web.restoreState(savedInstanceState);
    Intent in = new Intent(getApplicationContext(), DBZWiki.class);
    in.putExtras(savedInstanceState);
    startActivity(in);
}


public boolean onCreateOptionsMenu(android.view.Menu menu) {

    super.onCreateOptionsMenu(menu);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.dbz_menu, menu);
    return true;
}

public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {

    case R.id.dbzAbout:
        break;

    case R.id.dbzDonate:
        break;

    case R.id.dbzWiki:
        Intent a = new Intent("com.example.thenewboston.DBZWIKI");
        startActivity(a);

        break;
    }
    return false;
}

@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    web.loadUrl("file:///android_asset/infAppPaused.html");

}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    web.loadUrl(stream);
}

}

Wiki メニュー クラス :

public class DBZWiki extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dbz_wiki);

}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if(keyCode == KeyEvent.KEYCODE_BACK) {
        Intent in = getIntent();
        startActivity(in);
    }
    return true;
}
4

1 に答える 1

1

問題を解決しました。onResume() という戻るボタンを押します。

@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
web.loadUrl(stream);
}

そのため、アクティビティの再起動ではなく、loadUrl が webView のリロードを行っていました。

于 2013-02-01T22:14:31.700 に答える