Кнопка Android onClickListener

Я пытаюсь открыть новую Activity, нажав на кнопку в моем методе OnClickListener. Как OnClickListener метод работы и то, что должно быть сделано в нем, чтобы начать новую Activity?

Ответ 1

Эта задача может быть выполнена с помощью одного из основных строительных блоков 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) - используется для запуска нового действия.

Итак, предположим, у вас есть два класса деятельности -

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

Ответ 2

//create a variable that contain your button
Button button = (Button) findViewById(R.id.button);

    button.setOnClickListener(new OnClickListener(){
        @Override
        //On click function
        public void onClick(View view) {
            //Create the intent to start another activity
            Intent intent = new Intent(view.getContext(), AnotherActivity.class);
            startActivity(intent);
        }
    });

Ответ 3

Используйте OnClicklistener или вы можете использовать android:onClick="myMethod" в вашем коде кнопки XML, из которого вы собираетесь открыть новый макет. Поэтому при нажатии этой кнопки ваша функция myMethod будет вызываться автоматически. Ваша функция myMethod в классе выглядит следующим образом.

public void myMethod(View v) {
Intent intent=new Intent(context,SecondActivty.class);
startActivity(intent);
}

И в этом SecondActivity.class установить новый макет в contentview.

Ответ 4

легко:

запускающая активность (обработчик onclick)

 Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
 myIntent.putExtra("key", value); //Optional parameters
 CurrentActivity.this.startActivity(myIntent);

для нового действия:

@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String value = intent.getStringExtra("key"); //if it a string you stored.

и добавьте новую активность в AndroidManifest.xml:

<activity android:label="@string/app_name" android:name="NextActivity"/>