Как начать новую деятельность по нажатию кнопки - PullRequest
574 голосов
/ 15 ноября 2010

В приложении Android как запустить новое действие (GUI) при нажатии кнопки в другом действии и как вы передаете данные между этими двумя действиями?

Ответы [ 22 ]

4 голосов
/ 16 апреля 2017

Попробуйте этот простой метод.

startActivity(new Intent(MainActivity.this, SecondActivity.class));
3 голосов
/ 24 мая 2017

Запуск действия из другого действия - очень распространенный сценарий среди приложений для Android.
Чтобы начать занятие, вам нужен объект Intent .

Как создать Объекты Намерения?

Объект намерения принимает два параметра в своем конструкторе

  1. Контекст
  2. Название действия , которое должно быть начато. (или полное название пакета)
* * 1 022 Пример: * 1 023 *

enter image description here

Например, если у вас есть два действия, скажем HomeActivity и DetailActivity, и вы хотите начать DetailActivity с HomeActivity (HomeActivity -> DetailActivity). Вот фрагмент кода, который показывает, как запустить DetailActivity с

HomeActivity.

Intent i = new Intent(HomeActivity.this,DetailActivity.class);
startActivity(i);

И все готово.

Возвращаемся к нажатию кнопки.

Button button = (Button) findViewById(R.id.someid);

button.setOnClickListener(new View.OnClickListener() {

     @Override
     public void onClick(View view) {
         Intent i = new Intent(HomeActivity.this,DetailActivity.class);
         startActivity(i);  
      }

});
3 голосов
/ 15 ноября 2010

Способ начать новые действия - это передать намерение, и есть определенный тип намерения, который вы можете использовать для передачи данных из одного действия в другое. Я рекомендую вам ознакомиться с документами для разработчиков Android, относящимися к намерениям ; это обширная информация по этому вопросу, и есть примеры.

2 голосов
/ 12 ноября 2018

Kotlin

Первая активность

startActivity(Intent(this, SecondActivity::class.java)
  .putExtra("key", "value"))

Вторая активность

val value = getIntent().getStringExtra("key")

Предложение

Всегда помещайте ключи в постоянный файл для более управляемого пути.

companion object {
    val PUT_EXTRA_USER = "user"
}
startActivity(Intent(this, SecondActivity::class.java)
  .putExtra(PUT_EXTRA_USER, "value"))
2 голосов
/ 23 июня 2017

Запустите другое действие из этого действия, и вы также можете передать параметры через Bundle Object.

Intent intent = new Intent(getBaseContext(), YourActivity.class);
intent.putExtra("USER_NAME", "xyz@gmail.com");
startActivity(intent);

Извлечение данных из другого действия (YourActivity)

String s = getIntent().getStringExtra("USER_NAME");
1 голос
/ 14 октября 2017

Хотя правильные ответы уже были предоставлены, но я здесь для поиска ответа на языке Kotlin. Этот вопрос не относится к конкретному языку, поэтому я добавляю код для выполнения этой задачи на языке Kotlin.

Вот как вы делаете это в Kotlin для andorid

testActivityBtn1.setOnClickListener{
      val intent = Intent(applicationContext,MainActivity::class.java)
      startActivity(intent)

 }
1 голос
/ 15 июня 2017

Реализация интерфейса View.OnClickListener и переопределение метода onClick.

ImageView btnSearch;

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search1);
        ImageView btnSearch = (ImageView) findViewById(R.id.btnSearch);
        btnSearch.setOnClickListener(this);
    }

@Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btnSearch: {
                Intent intent = new Intent(Search.this,SearchFeedActivity.class);
                startActivity(intent);
                break;
            }
0 голосов
/ 04 марта 2019

Самый простой способ открыть действие по нажатию кнопки:

  1. Создайте два действия в папке res, добавьте кнопку к первому упражнению и присвойте имя функции onclick.
  2. Должно быть два java-файла для каждого действия.
  3. Ниже приведен код:

MainActivity.java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.content.Intent;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void goToAnotherActivity(View view) {
        Intent intent = new Intent(this, SecondActivity.class);
        startActivity(intent);
    }
}

SecondActivity.java

package com.example.myapplication;
import android.app.Activity;
import android.os.Bundle;
public class SecondActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity1);
    }
}

AndroidManifest.xml (просто добавьте этот блок кода к существующему)

 </activity>
        <activity android:name=".SecondActivity">
  </activity>
0 голосов
/ 09 ноября 2018

Поместить виджет кнопки в xml, как показано ниже

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"
/>

После этого инициализируйте и обработайте щелчок слушателя в Activity, как показано ниже.

В методе действия при создании:

Button button =(Button) findViewById(R.id.button); 
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
       Intent intent = new 
            Intent(CurrentActivity.this,DesiredActivity.class);
            startActivity(intent);
    }
});
0 голосов
/ 20 июля 2018

Напишите код в вашей первой деятельности.

button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {


Intent intent = new Intent(MainActivity.this, SecondAcitvity.class);
                       //You can use String ,arraylist ,integer ,float and all data type.
                       intent.putExtra("Key","value");
                       startActivity(intent);
                        finish();
            }
         });

В secondActivity.class

String name = getIntent().getStringExtra("Key");
...