Presentation is loading. Please wait.

Presentation is loading. Please wait.

用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青

Similar presentations


Presentation on theme: "用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青"— Presentation transcript:

1 用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青

2 專案名稱:Activities 維持ConstraintLayout,根據右圖設計相關介面: TextView EditText
textSize: 30sp EditText text: 「 Button text: 「開啟網頁」 onClick: OpenSecond

3 1. AndroidManifest.xml專案設定檔
將顯示螢幕強制設定為橫向 <activity android:name=".MainActivity" android:screenOrientation="landscape" > 若設為portrait 則強制直向

4 Activity_main.xml螢幕編輯設成橫向

5 2.在程式中新增 Activity 滑鼠停在左邊app,按滑鼠右鍵 畫面元件修改 將編輯畫面設為橫向
File→New →Activity→FullScreen Activity(全螢幕) Activity Name: 命名為SecondActivity 畫面元件修改 fullscreen_content (TextView) text: 第二個畫面 textSize: 30sp dummy_button的onClick設為:FinishSecond text: 回到主畫面 將編輯畫面設為橫向

6 AndroidManifest.xml將SecondActivity設為橫向

7 3. Intent Android 裡傳遞訊息的元件 可分為兩類
Explicit(明示) intents: 有明確元件目標(名稱)的 Intent 通常用於啓動其他應用程式的元件 本ppt屬於此種方式 Implicit(暗示) intents: 沒有明確元件目標的 Intent 下一份ppt

8 用Intent 啟動程式中的Activity
startActivity():用明示 Intent 啟動 Activity

9 finish():結束 Activity

10 程式碼 MainActivity.Java SecondActivity.Java
public void OpenSecond(View v){ Intent it = new Intent(this, SecondActivity.class); startActivity(it); } SecondActivity.Java public void FinishSecond(View v){ finish(); }

11 執行結果 點選螢幕

12 4.在Intent中夾帶資料傳給新Activity

13 putExtra():附加資料到 Intent 中

14 getIntent() 與 getXxxExtra(): 從 Intent 中取出資料

15 程式碼:傳遞Name字串 MainActivity.Java public void OpenSecond(View v){
Intent it = new Intent(this, SecondActivity.class); EditText edt = (EditText) findViewById(R.id.edt); it.putExtra("website", edt.getText().toString()); startActivity(it); }

16 程式碼:接收Name字串 SecondActivity.Java
protected void onCreate(Bundle savedInstanceState) { …… Intent it = getIntent(); String website = it.getStringExtra("website"); TextView t = (TextView) findViewById(R.id.fullscreen_content); t.setText(website); }

17 執行結果

18 5. WebView 於第二個活動的畫面(activity_second.xml),在文字下方,加入一個WebView
FrameLayout是一種堆疊的版面配置,後續的 元件會蓋在上面

19 讓WebView顯示網頁內容 SecondActivity.java onCreate方法最後,加入:
WebView webv = (WebView) findViewById(R.id.webv); webv.loadUrl(website); AndroidManifest.xml加入網路存取權限 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

20 執行結果

21 5.1 設定WebView支援JavaScript語法
SecondActivity.java onCreate方法: WebView webv = (WebView) findViewById(R.id.webv); //允許網頁使用JavaScript webv.getSettings().setJavaScriptEnabled(true); webv.loadUrl(website);

22 輸入其他網址,會詢問要用哪個 瀏覽器開啟

23 5.2 強制使用webView瀏覽網頁 SecondActivity.java的onCreate方法 … //預設的網頁會彈出選擇瀏覽器
webv.setWebViewClient(new WebViewClient()); webv.loadUrl(website);

24 5.3 根據螢幕寬度調整網頁,並可縮放 SecondActivity.java的onCreate方法 …
//如果沒有強制設定寬度,則使用範圍的最大視野(螢幕寬度) webv.getSettings().setUseWideViewPort(true); //當內容大於viewport時,系統將會自動縮小內容以適應螢幕寬度. webv.getSettings().setLoadWithOverviewMode(true); //顯示放大縮小 控制項 webv.getSettings().setBuiltInZoomControls(true); webv.getSettings().setSupportZoom(true); //可以縮放 webv.loadUrl(website);

25 點選網頁超鏈結,但是按返回鍵,都直接跳到上一個Activity
點選超鏈結

26 5.4 網頁返回鍵處理 SecondActivity.java的SecondActivity類別,新增onBackPressed方法:
@Override public void onBackPressed() { WebView webv = (WebView) findViewById(R.id.webv); if( webv.canGoBack()){ webv.goBack(); }else{ this.finish(); //結束 }


Download ppt "用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青"

Similar presentations


Ads by Google