Как вызвать второй экран в приложении и вернуть из него данные? Для получения данных из вызываемого активити используется пара методов: 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>>
Привет. Спасибо за уроки.Мне нужен помощь. У меня проблема с setResult(RESULT_OK,intent) .Когда я нажимаю на кнопку ОК апп закрывается. Когда удаляю setResult(RESULT_OK,intent) после нажатия кнопку ОК откр. 1 активити но без изменений.Даже попробывал setResult(activity.RESULT_OK,intent) .
Какие ошибки в консоли?