在我的 MainActivity
中,我有 5 个按钮,其中 4 个打开 WebViewActivity
以显示静态 HTML 内容。第 5 个按钮转到 PumpsActivity
,它包含另外 5 个按钮,这些按钮还可以打开 WebViewActivity
以显示静态 HTML 页面。
现在解决问题:
我希望能够从 WebViewActivity
“向上导航”到适当的父 Activity 。例如:如果 WebViewActivity
是从 MainActivity
调用的,那么向上导航应该将用户带到 MainActivity
。这很容易按照 android.developer.com 上的指南实现。 .
但是如何让 WebViewActivity
导航到 PumpsActivity
? 如何检查 WebViewActivity
是从哪个 Activity 启动的?
来 self 的 WebViewActivity
的相关代码(与 guide 中的基本相同):
@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);
}
最佳答案
正如 Leonidos 所建议的,您可以添加一个参数,但这会引入额外的耦合,而且我觉得父类只有 Activity 父类(super class)是公共(public)的,传递 Activity 类型并不理想。
想到的一种方法是在 WebViewActivity 中添加另一个 String extra,它指示调用 Activity。在 onOptionsItemSelected 中,您可以检查父字符串 extra 以查看调用它的 Activity,并根据需要导航到该 Activity。
关于android - 从 WebView 导航到不同的父 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14217463/