Android - Điều hướng

Trong chương này, chúng ta sẽ thấy rằng cách bạn có thể cung cấp điều hướng về phía trước và phía sau giữa một ứng dụng. Đầu tiên chúng ta sẽ xem xét cách cung cấp điều hướng trong một ứng dụng.

Cung cấp điều hướng

Điều hướng lên sẽ cho phép ứng dụng của chúng tôi chuyển sang hoạt động trước đó từ hoạt động tiếp theo. Nó có thể được thực hiện như thế này.

Để triển khai Điều hướng lên, bước đầu tiên là khai báo hoạt động nào là hoạt động gốc thích hợp cho từng hoạt động. Bạn có thể làm điều đó bằng cách chỉ địnhparentActivityNamethuộc tính trong một hoạt động. Cú pháp của nó được đưa ra dưới đây:

android:parentActivityName = "com.example.test.MainActivity"

Sau đó bạn cần gọi setDisplayHomeAsUpEnabled phương pháp của getActionBar()trong phương thức onCreate của hoạt động. Thao tác này sẽ bật nút quay lại trong thanh tác vụ trên cùng.

getActionBar().setDisplayHomeAsUpEnabled(true);

Điều cuối cùng bạn cần làm là ghi đè onOptionsItemSelectedphương pháp. khi người dùng nhấn vào nó, hoạt động của bạn sẽ nhận được cuộc gọi đến onOptionsItemSelected (). ID cho hành động làandroid.R.id.homeCú pháp của nó được đưa ra dưới đây -

public boolean onOptionsItemSelected(MenuItem item) {
   
   switch (item.getItemId()) {
      case android.R.id.home:
      NavUtils.navigateUpFromSameTask(this);
      return true;
   }	
}

Xử lý nút quay lại thiết bị

Vì bạn đã bật nút quay lại để điều hướng trong ứng dụng của mình, bạn có thể muốn đặt chức năng đóng ứng dụng trong nút quay lại của thiết bị.

Nó có thể được thực hiện bằng cách ghi đè onBackPressed và sau đó gọi moveTaskToBackfinishphương pháp. Cú pháp của nó được đưa ra dưới đây:

@Override
public void onBackPressed() {
   moveTaskToBack(true); 
   MainActivity2.this.finish();
}

Ngoài phương thức setDisplayHomeAsUpEnabled này, còn có các phương thức khác có sẵn trong lớp API ActionBar. Chúng được liệt kê dưới đây -

Sr.No Phương pháp & mô tả
1

addTab(ActionBar.Tab tab, boolean setSelected)

Phương pháp này thêm một tab để sử dụng trong chế độ điều hướng theo tab

2

getSelectedTab()

Phương thức này trả về tab hiện được chọn nếu ở chế độ điều hướng theo tab và có ít nhất một tab hiện diện

3

hide()

Phương pháp này ẩn ActionBar nếu nó hiện đang hiển thị

4

removeAllTabs()

Phương pháp này xóa tất cả các tab khỏi thanh tác vụ và bỏ chọn tab hiện tại

5

selectTab(ActionBar.Tab tab)

Phương pháp này chọn tab được chỉ định

Thí dụ

Ví dụ dưới đây minh họa việc sử dụng Điều hướng. Nó chứa một ứng dụng cơ bản cho phép bạn điều hướng trong ứng dụng của mình.

Để thử nghiệm với ví dụ này, bạn cần chạy điều này trên thiết bị thực tế hoặc trong trình giả lập.

Các bước Sự miêu tả
1 Bạn sẽ sử dụng Android studio để tạo ứng dụng Android theo gói com.example.sairamkrishna.myapplication.
2 Sửa đổi tệp src / MainActivity.java để thêm mã Hoạt động.
3 Tạo một hoạt động mới với tên second_main.java và chỉnh sửa nó để thêm mã hoạt động.
4 Sửa đổi tệp XML bố cục res / layout / activity_main.xml thêm bất kỳ thành phần GUI nào nếu cần.
5 Sửa đổi tệp XML bố cục res / layout / second.xml thêm bất kỳ thành phần GUI nào nếu cần.
6 Sửa đổi AndroidManifest.xml để thêm mã cần thiết.
7 Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả.

Đây là nội dung của src/MainActivity.java.

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity  {
   Button b1;

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

      b1 = (Button) findViewById(R.id.button);
      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            Intent in=new Intent(MainActivity.this,second_main.class);
            startActivity(in);
         }
      });
   }
}

Đây là nội dung của src/second_main.java.

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

/**
   * Created by Sairamkrishna on 4/6/2015.
*/

public class second_main extends Activity {
   WebView wv;

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

      wv = (WebView) findViewById(R.id.webView);
      wv.setWebViewClient(new MyBrowser());
      wv.getSettings().setLoadsImagesAutomatically(true);
      wv.getSettings().setJavaScriptEnabled(true);
      wv.loadUrl("http://www.tutorialspoint.com");
   }

   private class MyBrowser extends WebViewClient {
      @Override
      public boolean shouldOverrideUrlLoading(WebView view, String url) {
         view.loadUrl(url);
         return true;
      }
   }
}

Đây là nội dung của activity_main.xml.

Trong đoạn mã dưới đây abccho biết logo của tutorialspoint.com
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"
   tools:context=".MainActivity"
   android:transitionGroup="true">
   
   <TextView android:text="Navigation example" android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textview"
      android:textSize="35dp"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView"
      android:layout_below="@+id/textview"
      android:layout_centerHorizontal="true"
      android:textColor="#ff7aff24"
      android:textSize="35dp" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:theme="@style/Base.TextAppearance.AppCompat" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="first page"
      android:id="@+id/button"
      android:layout_below="@+id/imageView"
      android:layout_alignRight="@+id/textView"
      android:layout_alignEnd="@+id/textView"
      android:layout_marginTop="61dp"
      android:layout_alignLeft="@+id/imageView"
      android:layout_alignStart="@+id/imageView" />

</RelativeLayout>

Đây là nội dung của activity_main_activity2.xml.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical" android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:weightSum="1">
   
   <WebView
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:id="@+id/webView"
      android:layout_gravity="center_horizontal"
      android:layout_weight="1.03" />

</LinearLayout>

Đây là nội dung của Strings.xml.

<resources>
   <string name="app_name">My Application</string>
</resources>

Đây là nội dung của AndroidManifest.xml.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   <uses-permission android:name="android.permission.INTERNET"></uses-permission>
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
		
      <activity android:name=".second_main"></activity>
      
   </application>
</manifest>

Hãy thử chạy ứng dụng của bạn. Tôi cho rằng bạn đã tạo raAVDtrong khi thiết lập môi trường. Để chạy ứng dụng từ Android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào

biểu tượng Chạy từ thanh công cụ. Android studio cài đặt ứng dụng trên AVD của bạn và khởi động nó và nếu mọi thứ đều ổn với thiết lập và ứng dụng của bạn, nó sẽ hiển thị sau cửa sổ Trình mô phỏng--

Bây giờ chỉ cần nhấn vào nút và màn hình sau sẽ được hiển thị cho bạn.

Hoạt động thứ hai chứa webview, nó đã chuyển hướng đến tutorialspoint.com như hình dưới đây