3

在我的MainActivity我有 5 个按钮,其中 4 个打开一个WebViewActivity来显示静态 HTML 内容。第 5 个按钮PumpsActivity包含另外 5 个按钮,这些按钮也可以打开WebViewActivity以显示静态 HTML 页面。

现在解决问题:

我希望能够“向上导航”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 类型并不理想。

想到的一种方法是在 WebViewActivity 中有另一个额外的字符串,它指示调用活动。在 onOptionsItemSelected 中,您可以检查父字符串 extra 以查看哪个 Activity 调用了它,并根据需要导航到该 Activity。

于 2013-01-08T15:27:04.257 回答