📜  Android-导航

📅  最后修改于: 2021-01-05 05:24:02             🧑  作者: Mango


在本章中,我们将看到如何在应用程序之间进行向前和向后导航。我们将首先研究如何在应用程序中提供导航。

提供导航

向上导航将使我们的应用程序可以从下一个活动移至上一个活动。可以这样做。

要实现向上导航,第一步是声明哪个活动是每个活动的适当父项。您可以通过在活动中指定parentActivityName属性来实现。其语法如下-

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

之后,您需要在活动的onCreate方法中调用getActionBar()的setDisplayHomeAsUpEnabled方法。这将启用顶部操作栏中的后退按钮。

getActionBar().setDisplayHomeAsUpEnabled(true);

您需要做的最后一件事是重写onOptionsItemSelected方法。当用户按下它时,您的活动将收到对onOptionsItemSelected()的调用。该操作的ID为android.R.id.home,其语法如下-

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

处理设备后退按钮

由于已启用后退按钮在应用程序中导航,因此您可能希望将应用程序关闭函数置于设备的后退按钮中。

可以通过重写onBackPressed然后调用moveTaskToBackfinish方法来完成。其语法如下-

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

除了此setDisplayHomeAsUpEnabled方法之外,ActionBar API类中还有其他方法可用。它们在下面列出-

Sr.No Method & description
1

addTab(ActionBar.Tab tab, boolean setSelected)

This method adds a tab for use in tabbed navigation mode

2

getSelectedTab()

This method returns the currently selected tab if in tabbed navigation mode and there is at least one tab present

3

hide()

This method hide the ActionBar if it is currently showing

4

removeAllTabs()

This method remove all tabs from the action bar and deselect the current tab

5

selectTab(ActionBar.Tab tab)

This method select the specified tab

下面的示例演示了导航的用法。它创建了一个基本应用程序,使您可以在应用程序中导航。

要试验该示例,您需要在实际设备或仿真器上运行它。

Steps Description
1 You will use Android studio to create an Android application under a package com.example.sairamkrishna.myapplication.
2 Modify src/MainActivity.java file to add Activity code.
3 Create a new activity with the name of second_main.java and edit it to add activity code.
4 Modify layout XML file res/layout/activity_main.xml add any GUI component if required.
5 Modify layout XML file res/layout/second.xml add any GUI component if required.
6 Modify AndroidManifest.xml to add necessary code.
7 Run the application and choose a running android device and install the application on it and verify the results.

这是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);
         }
      });
   }
}

这是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;
      }
   }
}

这是activity_main.xml的内容。

在下面的代码中abc表示tutorialspoint.com的徽标



   
   
      
   
      
   
      
   


这是activity_main_activity2.xml的内容。



   
   


这是Strings.xml的内容。


   My Application

这是AndroidManifest.xml的内容。



   
   
   
      
      
         
         
            
            
         
         
      
        
      
      
   

让我们尝试运行您的应用程序。我假设您在进行环境设置时已创建了AVD 。要从Android Studio运行该应用,请打开您项目的活动文件之一,然后点击运行Eclipse运行图标工具栏中的图标。 Android studio将应用安装在您的AVD上并启动它,如果您的设置和应用程序一切正常,它将显示在“模拟器”窗口下方-

现在只需按一下按钮,就会显示以下屏幕。

匿名导航教程

第二个活动包含webview,它已重定向到tutorialspoint.com,如下所示

匿名导航教程