Android Cambiar entre actividades
lo que estoy tratando de hacer es una pantalla de inicio que se queda durante 5 segundos y va a activity1.When haga clic en un botón en activity1 me lleva a activity2.I've intentado muchas veces para hacer clic en el botón, pero no se produce ningún cambio. homescreen (5 segundos) = Actividad Main_Actividad Activity1 = selectpets.java Actividad2 = fishtank.java
onclick oyente parece el problema no sé lo que está mal con él
- Diferenciar los diálogos individuales con DialogInterface.OnClickListener
- Obtener la intensidad de la señal de WIFI y datos móviles
- If-else trabajando, no cambie
- Cambiar las actividades de un lado a otro en Android
- Android: El botón OnClickListener no funciona
Main Activity Code package com.set.petshome; import android.os.Bundle; import android.os.Handler; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { Button fButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Delay Code after 5 seconds new Handler().postDelayed(new Runnable() { @Override public void run() { setContentView(R.layout.selectscreen); //where <next> is you target activity :) } }, 5000); } //Delay End @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
Ahora el código Selectpets
package com.set.petshome; import android.app.Activity; import android.content.*; import android.os.Bundle; import android.view.*; import android.widget.Button; public class SelectPetsScreen extends Activity { Button fButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.selectscreen); //Button Fishtank Listener Start fButton = (Button) findViewById(R.id.button1); //Listening to button event fButton.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { //Starting a new Intent Intent nextScreen = new Intent(getApplicationContext(), fishtank.class); startActivity(nextScreen); } }); //Button Fishtank Listener End } }
Código de la clase Fishtank
package com.set.petshome; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.Button; public class fishtank extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ftank); } }
por cierto no hay errores en la aplicación no hay cambio después de hacer clic
muchas gracias
- El texto de Android debe aparecer en ambos lados en el
- Interruptor multinivel Android
- Cambiar del diseño main.xml a otro diseño
- Un problema Java de conmutación: las expresiones de caso deben ser expresiones constantes
- Botones onClick del interruptor
- Actividad del conmutador androide de un hilo no ui
- Cómo detectar cuándo un conmutador se desliza, no se hace clic
- Android Studio no me deja usar el interruptor en una cadena?
Aquí no se está cambiando nunca a la siguiente Activity
, simplemente cambiando el layout
de la Activity
actual
new Handler().postDelayed(new Runnable() { @Override public void run() { setContentView(R.layout.selectscreen); //where <next> is you target activity :) } }, 5000);
en lugar de setContentView()
usted necesita usar un Intent
Intent i = new Intent(MainActivity.this, SelectPetsScreen.this); startActivity(i);
Dado que en realidad no va a la siguiente Activity
(archivo java), su onClick()
no está configurado.
Editar
Esto es lo que estás haciendo
public class MainActivity extends Activity { Button fButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Delay Code after 5 seconds new Handler().postDelayed(new Runnable() { @Override public void run() { setContentView(R.layout.selectscreen); //where <next> is you target activity :) } }, 5000); }
Esto es lo que deberías hacer. Observe la diferencia en la función run()
public class MainActivity extends Activity { Button fButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Delay Code after 5 seconds new Handler().postDelayed(new Runnable() { @Override public void run() { Intent i = new Intent(MainActivity.this, SelectPetsScreen.this); startActivity(i); } }, 5000); }
Ante todo
setContentView(R.layout.activity_main); //Delay Code after 5 seconds new Handler().postDelayed(new Runnable() { @Override public void run() { setContentView(R.layout.selectscreen); //where <next> is you target activity :) } }, 5000);
¡NUNCA HAGA ESTO! Google le da una intenciones mechanish para cambiar con Actividades (transacción si el contexto es un fragmento)
Secundaria:
Todo lo que estás código abajo debe ser funciona bien.
Puede usar finish()
si desea utilizar firts Actividad sólo una vez.
mHandler.postDelayed(new Runnable() { @Override public void run() { startActivity(new Intent().setClass(MainActivity.this, SelectPetsScreen .class).setData(getIntent().getData())); finish(); } }, 5000);
Asegúrese de que tiene Actividad 2 definida en su Manifest.xml:
<activity android:name="xxSelectPetsScreen" android:theme="@style/NoTitle" android:screenOrientation="nosensor" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.MAIN" /> </intent-filter> </activity>
Pude resolverlo con la ayuda de Maxim Shoustin y todo el mundo por: la adición de la segunda Actividad a Manifest.xml que es SelectPetsScreen Muchas gracias
- Cambiar completamente el color de Android ImageView con color de tinte
- ¿Hay un límite al tamaño de la cola en un IntentService?