На Android, как вы переключаете деятельность программно? - PullRequest
31 голосов
/ 28 августа 2010

Кажется, что каждый пример переключения между действиями, который я могу найти, включает создание Intent и передачу в контексте View через OnClickListener, связанный с кнопкой.

Но что, если вы просто решите, что вам нужнопоменять деятельность?В моем случае значение предпочтения вызывает переключение активности.

Как создать намерение, которое может вызвать переключение активности без связанного с ним OnClickListener?

Ответы [ 8 ]

71 голосов
/ 28 августа 2010

Это должно сделать это для вас:

Intent myIntent = new Intent(this, MyActivityName.class);
startActivity(myIntent);

Вы можете позвонить из любой точки вашей текущей деятельности.

8 голосов
/ 29 октября 2014

Это зависит от того, где вы хотите начать новое действие в коде.Вам нужен доступ к контекстной ссылке, чтобы начать новое действие (например: onPostExecute в AsyncTask).Пожалуйста, посмотрите на это .

Даже если это в основном так.

 Intent myIntent = new Intent(this, ActivityName.class);
 startActivity(myIntent);

Это может быть что-то подобное

Intent myIntent = new Intent(context, ActivityName.class);
context.startActivity(myIntent);
5 голосов
/ 15 июля 2014

У меня самая короткая версия

startActivity(new Intent(CurrentActivity.this,ActivityYouWantToOpen.class));
2 голосов
/ 30 августа 2010

когда захочешь переключить активность. ты можешь назвать этот код.

Intent intent = new Intent(this, MyActivity.class);
startActivity(intent);

Вы можете написать этот код в PreferenceChangeListener.

2 голосов
/ 28 августа 2010

Использовать PreferenceChangeListener:)

1 голос
/ 14 января 2018

Сначала вам нужно создать пользовательский интерфейс для кнопки с помощью файла макета intro_activity_1.XML После этого установите идентификатор для группы кнопок с помощью android: id = "@ + id / button"

Пример:

intro_activity_1.xml

<Button    android:id="@+id/button"    
android:layout_width="wrap_content"    
android:layout_height="wrap_content"    
android:layout_weight="1"    
android:background="@android:color/transparent"    
android:text="NEXT" />

Теперь измените свой класс Java первой активности. В этом примере мы меняем Java-файл IntroActivity1.java

Пример:

IntroActivity1.java

//header, import and package data


public class IntroActivity1 extends AppCompatActivity {


    Button next_btn;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.intro_activity_1); 

           next_btn=(Button)findViewById(R.id.button);//button class

           next_btn.setOnClickListener(new View.OnClickListener(){
   public void onClick(View arg0){
       //Start new activity class
              Intent myIntent=new Intent(IntroActivity1.this,IntroActivity2.class);
             startActivity(myIntent);
      }
  });
}

Подробнее о посещении программы смены действий: https://answerdone.blogspot.com/2018/01/how-to-change-new-activity-in-android.html

1 голос
/ 17 мая 2017
startActivity (new Intent (Thisactivity.this, Nextactivity.class));

Не забудьте добавить активность в манифест

<Activity android:name=".NextActivity>
1 голос
/ 30 августа 2010

Вы можете создать intent в основной активности следующим образом:

Intent intent = new Intent(FirstActivity.this, second.class);
startActivity(intent);

Если вы ожидаете результата от секунды, то вам следует использовать

StartActivityforresult(intent,request code).

Код запроса может быть любым integer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...