В этой главе мы увидим, как вы можете обеспечить навигацию вперед и назад между приложениями. Сначала мы рассмотрим, как обеспечить навигацию в приложении.
Обеспечение навигации вверх
Навигация вверх позволит нашему приложению перейти к предыдущей активности от следующей. Это можно сделать так.
Для реализации навигации «вверх» первым делом необходимо указать, какое действие является подходящим родителем для каждого действия. Вы можете сделать это, указав атрибут parentActivityName в действии . Его синтаксис приведен ниже —
android:parentActivityName = "com.example.test.MainActivity"
После этого вам нужно вызвать метод setDisplayHomeAsUpEnabled getActionBar () в методе onCreate действия. Это активирует кнопку возврата на верхней панели действий.
getActionBar().setDisplayHomeAsUpEnabled(true);
Последнее, что вам нужно сделать, это переопределить метод onOptionsItemSelected . когда пользователь нажимает его, ваша деятельность получает вызов onOptionsItemSelected (). Идентификатор действия: android.R.id.home. Его синтаксис приведен ниже —
public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; } }
Кнопка возврата устройства перемещения
Поскольку вы включили кнопку «Назад» для навигации в приложении, вы можете добавить функцию закрытия приложения в кнопку «Назад» устройства.
Это можно сделать, переопределив onBackPressed, а затем вызвав moveTaskToBack и метод finish . Его синтаксис приведен ниже —
@Override public void onBackPressed() { moveTaskToBack(true); MainActivity2.this.finish(); }
Помимо этого метода setDisplayHomeAsUpEnabled, в классе ActionBar API есть и другие методы. Они перечислены ниже —
Sr.No | Метод и описание |
---|---|
1 |
addTab (вкладка ActionBar.Tab, логический setSelected) Этот метод добавляет вкладку для использования в режиме навигации с вкладками |
2 |
getSelectedTab () Этот метод возвращает текущую выбранную вкладку, если в режиме навигации по вкладкам присутствует хотя бы одна вкладка |
3 |
скрывать() Этот метод скрывает ActionBar, если он в данный момент показывает |
4 |
removeAllTabs () Этот метод удаляет все вкладки из панели действий и отменяет выбор текущей вкладки. |
5 |
selectTab (вкладка ActionBar.Tab) Этот метод выбрать указанную вкладку |
addTab (вкладка ActionBar.Tab, логический setSelected)
Этот метод добавляет вкладку для использования в режиме навигации с вкладками
getSelectedTab ()
Этот метод возвращает текущую выбранную вкладку, если в режиме навигации по вкладкам присутствует хотя бы одна вкладка
скрывать()
Этот метод скрывает ActionBar, если он в данный момент показывает
removeAllTabs ()
Этот метод удаляет все вкладки из панели действий и отменяет выбор текущей вкладки.
selectTab (вкладка ActionBar.Tab)
Этот метод выбрать указанную вкладку
пример
Приведенный ниже пример демонстрирует использование навигации. Он создает базовое приложение, которое позволяет вам перемещаться внутри вашего приложения.
Чтобы поэкспериментировать с этим примером, вам нужно запустить его на реальном устройстве или в эмуляторе.
меры | Описание |
---|---|
1 | Вы будете использовать Android studio для создания приложения 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.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
<? 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 = "@ dimension / activity_horizont_margin" андроид: paddingRight = "@ DIMEN / activity_horizontal_margin" андроид: paddingTop = "@ DIMEN / activity_vertical_margin" андроид: paddingBottom = "@ DIMEN / activity_vertical_margin" инструменты: контекст = "MainActivity" андроид: transitionGroup = "истинный"> <TextView android: text = "Пример навигации" android: layout_width = "wrap_content" андроид: layout_height = "wrap_content" андроид: идентификатор = "@ + идентификатор / TextView" андроид: TextSize = "35dp" андроид: layout_alignParentTop = "истина" android: layout_centerHorizont = "true" /> <TextView андроид: layout_width = "wrap_content" андроид: layout_height = "wrap_content" android: text = "Учебное пособие" андроид: идентификатор = "@ + идентификатор / TextView" андроид: layout_below = "@ + идентификатор / TextView" андроид: layout_centerHorizontal = "истина" андроид: TextColor = "# ff7aff24" android: textSize = "35dp" /> <ImageView андроид: layout_width = "wrap_content" андроид: layout_height = "wrap_content" андроид: идентификатор = "@ + идентификатор / ImageView" андроид: SRC = "@ вытяжка / а" андроид: layout_below = "@ + идентификатор / TextView" андроид: layout_centerHorizontal = "истина" android: theme = "@ style / Base.TextAppearance.AppCompat" /> <Кнопка андроид: layout_width = "wrap_content" андроид: layout_height = "wrap_content" android: text = "первая страница" андроид: идентификатор = "@ + идентификатор / кнопка" андроид: layout_below = "@ + идентификатор / ImageView" андроид: layout_alignRight = "@ + идентификатор / TextView" андроид: layout_alignEnd = "@ + идентификатор / TextView" андроид: layout_marginTop = "61dp" андроид: layout_alignLeft = "@ + идентификатор / ImageView" android: layout_alignStart = "@ + id / imageView" /> </ RelativeLayout>
Вот содержание 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>
Вот содержимое Strings.xml .
<resources> <string name="app_name">My Application</string> </resources>
Вот содержимое 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>
Давайте попробуем запустить ваше приложение. Я предполагаю, что вы создали свой AVD во время настройки среды. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок с панели инструментов. Android-студия устанавливает приложение на AVD и запускает его, и если все в порядке с вашими настройками и приложением, оно будет отображаться в следующем окне эмулятора.
Теперь просто нажмите на кнопку, и вам будет показан следующий экран.
Второе действие содержит веб-просмотр, оно перенаправлено на tutorialspoint.com, как показано ниже