在我的MainActivity
我有5个按钮,其中4个打开WebViewActivity
以显示静态HTML内容。第5个按钮转到PumpsActivity
,其中包含另外5个按钮,这些按钮也会打开WebViewActivity
以显示静态HTML页面。
我希望能够从WebViewActivity
“向上导航”到相应的父活动。例如:如果从WebViewActivity
调用MainActivity
而不是导航,则应将用户带到MainActivity
。根据{{3}}指南,这很容易实现。
但是如何让WebViewActivity
导航到PumpsActivity
? 如何查看WebViewActivity
的哪个活动已启动?
我WebViewActivity
的相关代码(与android.developer.com基本相同):
@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);
}
答案 0 :(得分:1)
正如Leonidos建议的那样,你可以添加一个参数,但这引入了额外的耦合,我感觉父母只有共同的Activity超类,并且传递一个Activity类型并不理想。
要想到的一种方法是在WebViewActivity中添加另一个String,表示调用Activity。在onOptionsItemSelected中,您可以检查父字符串extra以查看哪个Activity调用它,并根据需要导航到该Activity。