3

私には5つのボタンがあり、そのうちの4つは静的なHTMLコンテンツを表示MainActivityするために開きます。WebViewActivity5番目のボタンには、静的HTMLページを表示PumpsActivityするために開く追加の5つのボタンが含まれています。WebViewActivity

今問題に:

WebViewActivityから適切な親アクティビティに「ナビゲート」できるようにしたいと思います。たとえば、WebViewActivityから呼び出された場合は、上にMainActivity移動すると、ユーザーはに移動する必要がありますMainActivityこれは、 android.developer.comのガイドに従って簡単に実装できます。しかし、どうすればWebViewActivityまでナビゲートできPumpsActivityますか?どのアクティビティからWebViewActivity開始されたかを確認するにはどうすればよいですか?

私からの関連コードWebViewActivity(基本的にガイドと同じ):

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_web_view);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    Intent intent = getIntent();
    setTitle(intent.getStringExtra("WEBVIEW_TITLE"));

    webview = (WebView) findViewById(R.id.wvMyWebView);
    WebSettings webSettings = webview.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webview.loadUrl(intent.getStringExtra("WEBVIEW_URL"));
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            // This is called when the Home (Up) button is pressed
            // in the Action Bar.
            Intent parentActivityIntent = new Intent(this, MainActivity.class);
            
            parentActivityIntent.addFlags(
                    Intent.FLAG_ACTIVITY_CLEAR_TOP |
                    Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(parentActivityIntent);
            finish();
            return true;
    }
    return super.onOptionsItemSelected(item);
}
4

1 に答える 1

1

Leonidosが示唆しているように、パラメーターを追加することもできますが、これにより余分な結合が発生し、親には共通のActivityスーパークラスしかなく、Activityタイプを渡すことは理想的ではないと感じます。

それを行うために頭に浮かぶ1つの方法は、呼び出し元のアクティビティを示す別の文字列をWebViewActivityに追加することです。次に、onOptionsItemSelectedで、親文字列extraをチェックして、どのアクティビティがそれを呼び出したかを確認し、必要に応じてそのアクティビティに移動できます。

于 2013-01-08T15:27:04.257 に答える