开发手册 欢迎您!
软件开发者资料库

Android - 导航

Android导航 - 学习Android编程以及如何开发Android手机和ipad应用程序,从环境设置,应用程序组件,活动生命周期,服务生命周期,应用程序架构,发布应用程序,调试应用程序,处理事件,布局,菜单,用户界面控件开始,样式和主题,处理轮换,字体管理,发送电子邮件,数据存储,管理媒体,发送短信,电话。

在本章中,我们将了解如何在应用程序之间提供向前和向后导航.我们将首先介绍如何在应用程序中提供导航.

提供导航

向上导航将允许我们的应用程序移至上一个来自下一个活动的活动.可以这样做.

要实现向上导航,第一步是声明哪个活动是每个活动的适当父级.您可以通过在活动中指定 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 然后调用

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

除了这个setDisplayHomeAsUpEnabled方法之外,ActionBar API类还有其他方法可用.它们列在下面和下面;

Sr.No方法&描述
1

addTab (ActionBar.Tab tab,boolean setSelected)

此方法添加一个选项卡以在选项卡式导航模式中使用

2

getSelectedTab()

如果处于选项卡式导航模式且存在至少一个选项卡,则此方法返回当前选定的选项卡

3

hide()

此方法隐藏ActionBar如果它当前正在显示

4

removeAllTabs()

此方法从操作栏中删除所有标签并取消选择当前标签

5

selectTab(ActionBar.Tab tab)

此方法选择指定的标签

示例

以下示例演示了Navigation的使用.它包含一个允许您在应用程序中导航的基本应用程序.

要试验此示例,您需要在实际设备或模拟器中运行它.

步骤说明
1您将使用Android工作室创建Android应用程序包com.example.sairamkrishna.myapplication.
2修改src/MainActivity.java用于添加活动代码的文件.
3创建名为second_main的新活动. java并编辑它以添加活动代码.
4修改布局XML文件res/layout/activity_main.xml如果需要,添加任何GUI组件.
5修改布局XML文件res/layout/second.xml如果需要,添加任何GUI组件.
6修改AndroidManifest.xml以添加必要的代码.
7运行应用程序并选择正在运行的Android设备并在其上安装应用程序并验证结果.

以下是 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.IT屋.com");   }   private class MyBrowser extends WebViewClient {      @Override      public boolean shouldOverrideUrlLoading(WebView view, String url) {         view.loadUrl(url);         return true;      }   }}

以下是 activity_main.xml 的内容.

在下面的代码中 abc 表示it1352的标识.com
                                 

以下是 activity_main_activity2.xml 的内容.

      

以下是 Strings.xml 的内容.

   My Application

以下是 AndroidManifest.xml 的内容.

                                                                                                      

让我们尝试运行您的应用程序.我假设您在进行环境设置时创建了 AVD .要从Android工作室运行应用程序,请打开项目的一个活动文件,然后单击运行Eclipse Run Icon icon从工具栏中. Android工作室在您的AVD上安装应用程序并启动它,如果您的设置和应用程序一切正常,它将显示以下模拟器窗口和减号;

现在只需按下按钮,以下屏幕将向你显示.

Anroid Navigation Tutorial

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

Anroid Navigation Tutorial