Android Переключение между действиями

То, что я пытаюсь сделать, это домашний экран, который остается в течение 5 секунд и переходит к активности1.Когда я нажимаю кнопку в Activity1, я провожу меня в activity2.It пробовал много раз, чтобы нажимать кнопку, но переключения не происходит. Homecreen (5 секунд) = Main_Activity Activity1 = selectpets.java Activity2 = fishtank.java

Onclick прослушиватель кажется проблемой, я не знаю, что с ней не так

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; } } 

Теперь код 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 } } 

Код класса 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); } } 

Кстати, никаких ошибок в приложении просто не переключается после нажатия
Большое спасибо

Здесь вы никогда не переходите к следующему Activity , просто изменяя layout текущей Activity

  new Handler().postDelayed(new Runnable() { @Override public void run() { setContentView(R.layout.selectscreen); //where <next> is you target activity :) } }, 5000); 

Вместо setContentView() вам нужно использовать Intent

 Intent i = new Intent(MainActivity.this, SelectPetsScreen.this); startActivity(i); 

Поскольку вы не собираетесь перейти к следующему Activity (java-файл), ваш onClick() не установлен.

редактировать

Это то, что вы делаете

 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); } 

Это то, что вы должны делать. Обратите внимание на разницу в функции 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); } 

Прежде всего

  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); 

НИКОГДА НЕ ДЕЛАЙТЕ ЭТО! Google дает вам намерение механика переключиться с помощью операций (транзакция, если контекст является фрагментом)

Вторичный:

Все, что вы видите ниже, должно работать нормально.

Вы можете использовать finish() если хотите использовать firts Activity только один раз.

 mHandler.postDelayed(new Runnable() { @Override public void run() { startActivity(new Intent().setClass(MainActivity.this, SelectPetsScreen .class).setData(getIntent().getData())); finish(); } }, 5000); 

Убедитесь, что у вас есть 2-я операция, определенная в вашем 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> 

Я смог решить это с помощью Максима Шустина и всех, добавив второй Activity to Manifest.xml, который является SelectPetsScreen. Большое вам спасибо

Intereting Posts
Как добавить RecyclerView в xml в android Lollipop Получить высококачественное изображение профиля из GoogleSignInAccount Руководство по реализации PagerSlidingTabStrip Android Spring RestTemplate с прокси-сервером Как получить непрерывное событие mousemove при использовании мобильного браузера Android? Youtube Player на Android – бесконечная загрузка Каков наиболее эффективный с точки зрения батареи подход использования LocalClient для периодического получения обновлений? Как использовать назначение календаря? Really Prefer Network: выберите мой собственный сетевой провайдер, как только он станет доступен (из кода) Распознавание голоса не работает, когда голос находится под записью Android ListView mListView.getChildAt (i) null, как его решить? Android Proguard – ClassNotFoundException Smack на Android, получив код ошибки = «404» remote-server-not-found при отправке пакетов / сообщений между двумя пользователями через локальный сервер Openfire SetVideoSurfaceTexture не удалось: -22 в медиаплеере Array = java.lang.IndexOutOfBoundsException: недопустимый диапазон массивов от 10 до 10