English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Código de implementación específico:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // método1. usa una clase que implementa el interfaz OnClickListener ((Button) findViewById(R.id.btn1)) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity1); startActivity(intent); } }); // método2. usa una clase anónima interna ((Button) findViewById(R.id.btn2)) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity2); startActivity(intent); } }); // método3. Activity implements directly the OnClickListener interface ((Button) findViewById(R.id.btn3)) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity3); MainActivity.this.startActivity(intent); } }); // método4.etiqueta directamente identifica el evento desencadenante ((Button) findViewById(R.id.btn4)) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ButtonActivity4); MainActivity.this.startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflar el menú; esto agrega elementos a la barra de acción si está presente. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Maneje los clics en los elementos de la barra de acción aquí. La barra de acción // manejar automáticamente los clics en el hogar/Botón de subida, mientras tanto // como especifica una actividad madre en AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }
En el código anterior:
1La clase MainActivity que creamos debe heredar de Activity
2、es necesario sobrescribir el método onCreate y cargar el archivo de diseño correspondiente mediante setContentView
3、se puede encontrar el control correspondiente (definido en el archivo de diseño layout) mediante findViewById y asociar un evento de clic (en Java se realiza a través de un listener, en C# a través de un delegado)
4、se puede pasar datos y saltar a otras actividades a través de un objeto Intent
5、onCreateOptionsMenu y onOptionsItemSelected son métodos para agregar y seleccionar ítems de menú.
A continuación, se presentan los contents de las cuatro actividades:
Primera opción:
public class ButtonActivity1 extends Activity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button1); button = (Button) findViewById(R.id.btn1); button.setOnClickListener(new MyListener()); } public class MyListener implements OnClickListener { @Override public void onClick(View v) { Toast.makeText(ButtonActivity1.this, "Esta es la primera forma de escribir el evento, definiendo el evento en una clase interna", 2000).mostrar(); } } }
Segunda opción:
public class ButtonActivity2 extends Activity { Button button ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button2); button = (Button)findViewById(R.id.btn1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ButtonActivity2.this, "Esta es la segunda forma de escribir el evento, en forma de clase interna anónima", 2000).mostrar(); } }); } }
Tercera opción:
public class ButtonActivity3 extends Activity implements OnClickListener { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button3); button= (Button)findViewById(R.id.btn1); button.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn1: Toast.makeText(ButtonActivity3.this, "Esta es la tercera forma de escribir el evento, implementando directamente el método OnClick de la interfaz OnClickListener", 2000).mostrar(); break; default: Toast.makeText(ButtonActivity3.this, "no se ha desencadenado", 2000).mostrar(); break; } } }
Cuarta opción:
Necesita especificar el método btnClickEvent en el archivo de diseño layout.xml.
<LinearLayout 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:orientation="vertical" tools:context="com.example.test.Button"4Activity" > <Button android:id="@"+id/btn4" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="haga clic en mí" android:onClick="btnClickEvent"/> </LinearLayout> public class ButtonActivity4 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button4); } public void btnClickEvent(View v){ Toast.makeText(ButtonActivity4.this, "Esta es la cuarta forma de evento, se binda directamente el evento Click en la etiqueta Button del archivo de diseño" 2000).mostrar(); } }
arriba4esta forma, el3este método se utiliza más a menudo. Cuando hay varios botones en un activity que necesitan desencadenar eventos de click, a través de3esta forma es más fácil de gestionar y mantener el código de eventos del botón.
El diseño es un contenido muy importante, lo explicaré en el siguiente blog, aquí mencionaré brevemente.
Estamos utilizando LinearLayout (diseño lineal, otros incluyen diseño relativo, diseño absoluto, etc.), se ha configurado la propiedad de Android:orientation en vertical (vertical), mostrando los controles en orden desde arriba hacia abajo.
otros3archivos de diseño que tienen el mismo contenido, todos solo contienen un botón.
La configuración de activity_main.xml es la siguiente (simplemente se colocó)4un botón):
<LinearLayout 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:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.test.MainActivity" > <Button android:id="@"+id/btn1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/clickMe1" /> <Button android:id="@"+id/btn2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/clickMe2" /> <Button android:id="@"+id/btn3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/clickMe3" /> <Button android:id="@"+id/btn4" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/clickMe4" android:onClick="btnClickEvent"/> </LinearLayout>
El paso más importante, que debe configurarse en el archivo AndroidManifest.xml, es registrar la Activity, la configuración completa es la siguiente:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@drawable/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=".ButtonActivity1" android:label="@string/button1" /> <activity android:name=".ButtonActivity2" android:label="@string/button2" /> <activity android:name=".ButtonActivity3" android:label="@string/button3" /> <activity android:name=".ButtonActivity4" android:label="@string/button4" /> </application> </manifest>
Aquí hay un punto que merece atención,
<action android:name="android.intent.action.MAIN" />
Configurar MainActivity como "Actividad Principal", es decir, la primera Activity que se muestra al iniciar.
Las múltiples activities enumeradas a continuación deben registrarse en el "archivo de lista", de esta manera el programa puede encontrar estas Activity.
Contenido configurado en el archivo strings.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">test</string>/string> <string name="hello_world">¡Hola mundo!</string>/string> <string name="action_settings">Configuración</string>/string> <string name="clickMe1">evento de botón1</string> <string name="clickMe2">evento de botón2</string> <string name="clickMe3">evento de botón3</string> <string name="clickMe4">evento de botón4</string> <string name="button1">botón1</string> <string name="button2">botón2</string> <string name="button3">botón3</string> <string name="button4">botón4</string> </resources>
Por supuesto, también puede escribirlo directamente en el archivo de layout, pero esto es más beneficioso para la mantenimiento, que es el método recomendado por el desarrollo de Android.
Los cuatro métodos de escritura de eventos de salto de activity en Android que el editor le ha presentado a todos ustedes, espero que les sea útil. Si tienen alguna pregunta, déjenme un mensaje y el editor les responderá a tiempo. También muy agradecido por el apoyo a la página web de la教程!
Declaración: El contenido de este artículo se obtiene de la red, pertenece al propietario original, el contenido se contribuye y carga espontáneamente por los usuarios de Internet, este sitio no posee los derechos de propiedad, no se ha realizado un procesamiento editorial humano y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de copyright, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, por favor reemplace # con @) para denunciar y proporcionar evidencia relevante. Una vez verificada, este sitio eliminará inmediatamente el contenido sospechoso de infracción.