Как перемещаться с одного экрана на другой экран - PullRequest
33 голосов
/ 09 июля 2009

Как перейти с одного экрана активности на другой экран активности? На первом экране у меня есть одна кнопка, если я нажимаю кнопку, она должна перейти к другому экрану действий.

Ответы [ 11 ]

17 голосов
/ 09 июля 2009

Самый тривиальный случай (вызванный из активности):

startActivity(new Intent(this, ActivityToLaunch.class));

Подробнее здесь: http://developer.android.com/guide/topics/fundamentals.html

16 голосов
/ 10 июля 2009
Button x.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) 
                {
                    Intent i = new Intent(y.this, Activity.class);
                    startActivity(i);                   
                }
        });

Здесь мы определили слушателя для кнопки x. ОС вызовет этот метод и запустит Activity, на которую ссылается Intent i.

Вот официальный пример учебника: http://developer.android.com/guide/tutorials/notepad/notepad-ex2.html

12 голосов
/ 09 июля 2009
OnClickListener onClickListener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new Intent(action));
    }
};

Button button = (Button) findViewById(id);
button.setOnClickListener(onClickListener);
10 голосов
/ 17 мая 2012
Button btn = (Button)findViewById(R.id.button1);

btn.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {      

        startActivity(new Intent(TestActivity.this,second.class));

    }
});
7 голосов
/ 06 марта 2012
public void onClick(View v) 
{
    Intent myintent = new Intent(currentclass.this, nextactivity.class);
    startActivity(myintent);                               
}
4 голосов
/ 26 июня 2013

Эта задача может быть выполнена с использованием одного из основных строительных блоков Android, названного Intents, и одного из методов public void startActivity (Intent intent), который принадлежит вашему классу Activity.

Намерение - это абстрактное описание выполняемой операции. Его можно использовать с startActivity для запуска Activity, для передачи BroadIntent его любым заинтересованным компонентам BroadcastReceiver и startService (Intent) или bindService (Intent, ServiceConnection, int) для взаимодействия с фоновой службой.

Intent предоставляет средство для позднего связывания во время выполнения между кодом в разных приложениях. Его наиболее важное применение - запуск мероприятий, где его можно рассматривать как связующее звено между действиями. По сути, это пассивная структура данных, содержащая абстрактное описание выполняемого действия.

См. Официальные документы - http://developer.android.com/reference/android/content/Intent.html

public void startActivity (Intent intent) - используется для запуска нового действия.

Итак, предположим, что у вас есть два класса Activity, и при нажатии кнопки OnClickListener() вы хотите перейти от одного занятия к другому, затем -

  1. PresentActivity - это ваш текущий вид деятельности, из которого вы хотите перейти ко второму действию.

  2. NextActivity - это ваша следующая активность, по которой вы хотите перейти.

Итак, Намерение будет таким:

Intent(PresentActivity.this, NextActivity.class)

Наконец, это будет полный код

  public class PresentActivity extends Activity {
        protected void onCreate(Bundle icicle) {
            super.onCreate(icicle);

            setContentView(R.layout.content_layout_id);

            final Button button = (Button) findViewById(R.id.button_id);
            button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    // Perform action on click   

                    Intent activityChangeIntent = new Intent(PresentActivity.this, NextActivity.class);

                    // currentContext.startActivity(activityChangeIntent);

                    PresentActivity.this.startActivity(activityChangeIntent);
                }
            });
        }
    }

Этот пример относится к нажатию кнопки. Вы можете использовать код в любом месте, который написан внутри кнопки OnClickListener() нажатия кнопки в любом месте, где вы хотите переключаться между своими действиями.

4 голосов
/ 08 июня 2011
final Context cont = this;
Button btnClickABC =(Button)findViewById(R.id.btnClickABC);
btnClickABC.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {                   
                startActivity(new Intent(cont, NextActivity.class));

            }
        });
3 голосов
/ 06 марта 2012

Используйте следующий код .. Надеюсь, это поможет вам.

 Button button = (Button)findViewById(R.id.xxx);
    button .setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
        Intent intent=new Intent(CurrentActivity.this,NextActivity.class);
        startActivity(intent);
        }
    });

xxx - это идентификатор из вашего xml вашей кнопки.

1 голос
/ 01 октября 2015

Переключение с одного вида деятельности на другой действительно просто, но сложно для нового. Ваш следующий класс должен быть определен в AndroidManifest.xml. Это класс тестера:

<activity
  android:name=".Tester"
  android:label="@string/title_activity_tester" >`enter code here`
</activity>


final Button button = (Button) findViewById(R.id.btnGo);// btnGo is id 
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Intent i = new Intent(CurrentClass.this, Tester.class);
        startActivity(i);
    }
1 голос
/ 10 июня 2011
startActivity(new Intent(this,newActivity.class));
...