Как переключаться между действиями - PullRequest
1 голос
/ 17 октября 2011

В моем приложении у меня есть три действия:

  1. Активность 1

  2. Активность 2

  3. Упражнение 3

Как переключаться между занятиями.

Так как это можно сделать?

 public boolean onOptionsItemSelected(MenuItem item)
{   

    switch (item.getItemId()) 
    {
        case R.id.settingOpt:                           
            Intent intent = new Intent(this, SettingsForm.class);
            this.startActivity(intent); 
            this.finish();
        break;         

        case R.id.reminderOpt:                          
            Intent intentR = new Intent(this, ReminderForm.class);
            this.startActivity(intentR);   
        break;

        case R.id.helpOpt:                          
            Intent intentH = new Intent(this, HelpForm.class);
            this.startActivity(intentH);  
            this.finish();
        break;

        case R.id.shareOpt:                             
            Intent share = new Intent(android.content.Intent.ACTION_SEND);
            share.setType("text/plain");
            share.putExtra(Intent.EXTRA_SUBJECT, "Name of the thing to share");
            share.putExtra(Intent.EXTRA_TEXT, "www.gmail.com");
            startActivity(Intent.createChooser(share, "Share LoveCycle's website link with your friends"));
        break;

        default:

        return super.onOptionsItemSelected(item);       
    }

    return true;
}

Ответы [ 5 ]

2 голосов
/ 17 октября 2011

Когда я нажимаю кнопку «Назад» в «Деятельности 3», я всегда должен переходить к «Деятельности 1» вместо «Деятельности 2»:

Использовать следующий метод для события нажатия кнопки «Назад» в Деятельности 3:

setResult(R.id.common_backToActivity1);

И в Activity2 перехватите этот setResult следующим образом и закройте это Activity:

protected void onActivityResult(int requestCode, int resultCode,Intent data) {
        switch(resultCode){
        case R.id.common_backToActivity1:
            closeActivity();  //Finish Activity2 in this method
            break;  
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

Тогда вы сразу перейдете к Activity1.

2 голосов
/ 17 октября 2011

За первый вопрос

  1. используйте метод finish () в упражнении 2 после вызова занятия 3.

  2. вы, вероятно, должны закрыть приложение, когда вы нажмете кнопку домой. Потому что ваше приложение будет сохранять свое состояние, пока оно не будет закрыто.

1 голос
/ 17 октября 2011

Попробуйте что-то вроде этого:

Home Key

Вы не можете контролировать поведение клавиши Home.При нажатии клавиши «Домой» ваше приложение отправляется в фоновый режим, а когда вы снова запускаете приложение, оно приходит в состояние, из которого вы вышли.Но это поведение не согласовано, поскольку оно зависит от устройства.Устройство может finish() ваше приложение, если ему требуется память или какой-либо ресурс, который ваше приложение использует.

for your activity:

начать действие 3 с startActivityForResult () и при нажатии на спину finish() занятие3 и когда вы получите звонок в onActivityResult() в упражнении 2 finish(), он там, и вы вернетесь к занятию 1.

0 голосов
/ 17 октября 2011

Вы должны реализовать свои намеренные вызовы, чтобы следовать этому.Вместо того, чтобы переходить от действия 2 к действию 3, вы должны завершить упражнение 2 и вернуть некоторое значение, которое побуждает занятие 1 к последующему вызову занятия 3. Что касается нажатия клавиши home, добавьте тот же код в области OnResume () OnCreate ()так что он знает, какое намерение / активность всегда загружать.

0 голосов
/ 17 октября 2011

За ваш первый вопрос. Вы можете переопределить кнопку «Назад» и проверить, в какой деятельности вы находитесь в данный момент, и указать, куда идти, основываясь на этом.

На второй вопрос.

Поместите android:clearTaskOnLaunch="true" в ваши действия при запуске в файле манифеста. Это заставит ваше приложение всегда запускаться заново при повторном запуске.

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