Download presentation
Presentation is loading. Please wait.
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(); //結束 }
Similar presentations