Android: navegación
En este capítulo, veremos cómo puede proporcionar navegación hacia adelante y hacia atrás entre una aplicación. Primero veremos cómo proporcionar navegación en una aplicación.
Proporcionar navegación ascendente
La navegación hacia arriba permitirá que nuestra aplicación se mueva a la actividad anterior de la siguiente actividad. Se puede hacer así.
Para implementar la navegación hacia arriba, el primer paso es declarar qué actividad es el padre apropiado para cada actividad. Puedes hacerlo especificandoparentActivityNameatributo en una actividad. Su sintaxis se da a continuación:
android:parentActivityName = "com.example.test.MainActivity"
Después de eso necesitas llamar setDisplayHomeAsUpEnabled método de getActionBar()en el método onCreate de la actividad. Esto habilitará el botón de retroceso en la barra de acción superior.
getActionBar().setDisplayHomeAsUpEnabled(true);
Lo último que debe hacer es anular onOptionsItemSelectedmétodo. cuando el usuario lo presiona, su actividad recibe una llamada a onOptionsItemSelected (). El ID de la acción esandroid.R.id.homeSu sintaxis se da a continuación:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
}
Botón de retroceso del dispositivo de manipulación
Dado que ha habilitado el botón de retroceso para navegar dentro de su aplicación, es posible que desee colocar la función de cierre de la aplicación en el botón de retroceso del dispositivo.
Se puede hacer anulando onBackPressed y luego llamando moveTaskToBack y finishmétodo. Su sintaxis se da a continuación:
@Override
public void onBackPressed() {
moveTaskToBack(true);
MainActivity2.this.finish();
}
Aparte de este método setDisplayHomeAsUpEnabled, hay otros métodos disponibles en la clase API ActionBar. Se enumeran a continuación:
No Señor | Método y descripción |
---|---|
1 | addTab(ActionBar.Tab tab, boolean setSelected) Este método agrega una pestaña para usar en el modo de navegación con pestañas |
2 | getSelectedTab() Este método devuelve la pestaña seleccionada actualmente si está en el modo de navegación con pestañas y hay al menos una pestaña presente |
3 | hide() Este método oculta la ActionBar si se muestra actualmente |
4 | removeAllTabs() Este método elimina todas las pestañas de la barra de acciones y anula la selección de la pestaña actual |
5 | selectTab(ActionBar.Tab tab) Este método selecciona la pestaña especificada |
Ejemplo
El siguiente ejemplo demuestra el uso de la navegación. Contiene una aplicación básica que le permite navegar dentro de su aplicación.
Para experimentar con este ejemplo, debe ejecutarlo en un dispositivo real o en un emulador.
Pasos | Descripción |
---|---|
1 | Utilizará Android Studio para crear una aplicación de Android en un paquete com.example.sairamkrishna.myapplication. |
2 | Modifique el archivo src / MainActivity.java para agregar el código de actividad. |
3 | Cree una nueva actividad con el nombre second_main.java y edítela para agregar el código de actividad. |
4 | Modifique el archivo XML de diseño res / layout / activity_main.xml agregue cualquier componente GUI si es necesario. |
5 | Modifique el archivo XML de diseño res / layout / second.xml agregue cualquier componente de GUI si es necesario. |
6 | Modifique AndroidManifest.xml para agregar el código necesario. |
7 | Ejecute la aplicación y elija un dispositivo Android en ejecución e instale la aplicación en él y verifique los resultados. |
Aquí está el contenido de 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);
}
});
}
}
Aquí está el contenido de 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;
}
}
}
Aquí está el contenido de activity_main.xml.
En el siguiente código abcindica el logo de 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>
Aquí está el contenido de 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>
Aquí está el contenido de Strings.xml.
<resources>
<string name="app_name">My Application</string>
</resources>
Aquí está el contenido de 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>
Intentemos ejecutar su aplicación. Supongo que habías creado tuAVDmientras realiza la configuración del entorno. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar de la barra de herramientas. Android Studio instala la aplicación en su AVD y la inicia y si todo está bien con su configuración y aplicación, se mostrará la siguiente ventana del Emulador.
Ahora simplemente presione el botón y se le mostrará la siguiente pantalla.
La segunda actividad contiene webview, se ha redirigido a tutorialspoint.com como se muestra a continuación