Урок 29. Вызов второго Activity с возвращением данных | Уроки Android Studio

Как вызвать второй экран в приложении и вернуть из него данные? Для получения данных из вызываемого активити используется пара методов: startActivityForResult и onActivityResult. В этом уроке создаем простое android приложение, в котором мы вызываем второй экран методом startActivityForResult, и получаем введенные на нем данные обратно в метод onActivityResult.

Исходный код под видео:

MainActivity.java

package info.fandroid.simpleactivityresult;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    TextView tvName;
    Button btnName;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tvName = (TextView) findViewById(R.id.tv_name);
        btnName = (Button) findViewById(R.id.button_name);
        btnName.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent intent = new Intent(this, NameActivity.class);
        startActivityForResult(intent, 1);

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (data == null){
            return;
        } String name = data.getStringExtra("name");
        tvName.setText("Your name is " + name);
    }
}

NameActivity.java

package info.fandroid.simpleactivityresult;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class NameActivity extends AppCompatActivity implements View.OnClickListener{

    EditText editText;
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_name);

        editText = (EditText) findViewById(R.id.editText);
        button = (Button) findViewById(R.id.button_ok);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent intent = new Intent();
        intent.putExtra("name", editText.getText().toString());
        setResult(RESULT_OK, intent);
        finish();

    }
}

 

<<Урок 28. Передаем данные между Activity используя Intent Extras | Уроки Android Studio

Урок 30. Используем requestCode и resultCode в onActivityResult | Уроки Android Studio>>

Коментарі: 3
  1. Elchn

    Привет. Спасибо за уроки.Мне нужен помощь. У меня проблема с setResult(RESULT_OK,intent) .Когда я нажимаю на кнопку ОК апп закрывается. Когда удаляю setResult(RESULT_OK,intent) после нажатия кнопку ОК откр. 1 активити но без изменений.Даже попробывал setResult(activity.RESULT_OK,intent) .

    1. admin (автор)

      Какие ошибки в консоли?

Додати коментар