Я пытаюсь открыть новую Activity
, нажав на кнопку в моем методе OnClickListener
. Как OnClickListener
метод работы и то, что должно быть сделано в нем, чтобы начать новую Activity
?
Кнопка Android onClickListener
Ответ 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)
- используется для запуска нового действия.
Итак, предположим, у вас есть два класса деятельности -
-
PresentActivity - это ваша текущая активность, из которой вы хотите перейти ко второй активности.
-
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"/>