Botón para Android Onclick
OK Soy nuevo en android dev y Java, así que estoy teniendo problemas con el método de clic aquí es mi código Ii sé que tengo que estar cerca gracias de antemano todo lo que quiero que mi botón de hacer es cuando se hace clic en el teléfono para cambiar La vista de diseño desde main.xml a xx.xml
package my.project; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class ExperiencerlActivity extends Activity { /** Called when the activ`enter code here`ity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub } }); } }
Aquí está mi código de botón
- Los anuncios de AdMob no se muestran
- Cambio de OpenGL ES 1.0 a 2.0
- ¿Cómo puedo interceptar un objeto observable y modificarlo en RxJava antes de volver al suscriptor?
- Problemas al recibir ACTION_PASSWORD_SUCCEEDED y ACTION_PASSWORD_FAILED intents
- Dar permiso de actividad en AndroidManifest
<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/linearLayout1" android:layout_centerHorizontal="true" android:layout_marginBottom="56dp" android:onClick="setLogin" android:text="Login" />
- ¿Cómo invocar un método (reflexión) con un parámetro no genérico?
- Uso de Observable en Android
- Bitwise "&" en un largo?
- Android studio dalvik vm no puede encontrar la clase
- API de calendario de Android vs API de proveedor de calendario
- ¿Cómo añado iconos a la plantilla de gavetas de navegación de Android Studio?
- Cómo rellenar dos colores diferentes en forma personalizada?
- Android setOnMyLocationChangeListener está obsoleto
Si escribes así en la etiqueta Button en el archivo xml: android: onClick = "setLogin" entonces
Hazlo así:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/btn" android:onClick="onClickBtn" /> </LinearLayout>
Y en la parte de código:
public class StartUpActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void onClickBtn(View v) { Toast.makeText(this, "Clicked on Button", Toast.LENGTH_LONG).show(); } }
Y no hay necesidad de todo esto:
Button button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub } });
Compruébelo una vez;
Método 1:
public void onClick(View v) { Intent i = new Intent(currentActivity.this, SecondActivity.class); startActivty(i); }
Método 2:
Button button = (Button) findViewById(R.id.mybutton); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast.makeText(this, "Button Clicked", Toast.LENGTH_LONG).show(); } });
Necesita hacer el mismo nombre de método tanto en XML de diseño como en código java.
Si usas android:onClick="setLogin"
entonces necesitas hacer un método con el mismo nombre, setLogin :
// Please be noted that you need to add the "View v" parameter public void setLogin(View v) { }
CONSEJO:
No mezcle el diseño con el código mediante el uso de android:onClick
etiqueta android:onClick
en su XML. En su lugar, mueva el método de clic a su clase con método OnClickListener
como:
Button button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub } });
Hacer un diseño sólo para el diseño y no más. Se ahorrará su precioso tiempo cuando necesita refactoring para soportar múltiples pantallas .
Utilice algo como esto:
public void onClick(View v) { // TODO Auto-generated method stub startActivity(new Intent("com.droidnova.android.splashscreen.MyApp")); }
Mira aquí: Pantalla de bienvenida android
Sería útil saber qué código está intentando ejecutar cuando se presiona el botón. Usted tiene la propiedad onClick establecida en su archivo xml a un método llamado setLogin. Para mayor claridad, android:onClick="setLogin"
esta línea android:onClick="setLogin"
y llamaría al método directamente desde dentro de su método onClick()
.
Además, no se puede simplemente configurar la pantalla a un nuevo XML, es necesario iniciar una nueva actividad con un Intent, un método algo como esto sería apropiado
private void setLogin() { Intent i = new Intent(currentActivity.this, newActivity.class); startActivty(i); }
A continuación, establezca la nueva Actividad para tener el nuevo diseño.
Esto lo clasificará para usted
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button but1=(Button)findViewById(R.id.button1); but1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent int1= new Intent(MainActivity.this,xxactivity.class); startActivity(int1); } }); }
Sólo tiene que modificar la xxactividad con el nombre de su segunda actividad
El código para eso es:
Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener{ });
- ¿Qué configuración de ProGuard necesito para Firebase en Android?
- Añadir biblioteca java al proyecto Android Studio con el repositorio maven