2016-10-25 60 views
0

我在該活動中創建了一個只有WebView的活動,並且我想在多個地方使用該活動,我只需要在URL和PAGETITLE中傳遞參數,什麼是最好的練習讓它工作,還是我應該爲每個需要加載的webview創建一個新的活動?在應用程序內重用WebView Activity

感謝

public class WebviewActivity extends BaseAppCompatActivity { 
private WebView mWebView; 
private String mPageTitle,mUrl; 

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

    Bundle extras = getIntent().getExtras(); 
    if (extras == null) { 
     mPageTitle = "pagetitle"; 
     mUrl = null; 

    } else { 
     mPageTitle = extras.getString(Constants.PAGE_TITLE); 
     mUrl = extras.getString(Constants.URL); 
    } 

    if (getSupportActionBar() != null) { 
     getSupportActionBar().setTitle(mPageTitle); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    } 

    mWebView = (WebView) findViewById(R.id.webview); 
    mWebView.getSettings().setJavaScriptEnabled(true); 

    mWebView.setWebViewClient(new WebViewClient()); 
    mWebView.loadUrl(mUrl); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      onBackPressed(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
    } 
} 
+0

那麼你可以重用這項活動不是嗎?爲什麼這麼問? – greenapps

+0

我正在學習Android,我只想確認這樣的事情的最佳實踐,謝謝。 –

回答

0

您可以像任何其他活動,通過發送Intent重用此活動啓動它:

// "this" references the context 
Intent intent = new Intent(this, WebviewActivity.class); 
intent.putExtra(Constants.PAGE_TITLE, "Stack Overflow"); 
intent.putExtra(Constants.URL, "http://stackoverflow.com/"); 
startActivity(intent); 

該系統處理其生命週期(創建,銷燬等。 ),所以這是你應該重做它的唯一方法。

+0

太棒了,生命週期的一部分是我需要知道的,謝謝! –

相關問題