моя проблема состоит в том, чтобы передать строку между 3 действиями. Я объясню, как я это сделал.putExtra() не работает
первая активность, называемая loginActiviy, где я это делаю.
//OnCreate ecc before this
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
data.putExtra("Name", Name);
super.onActivityResult(requestCode, resultCode, data);
}
public void onResume()
{
super.onResume();
finish();
}
, когда заканчивается деятельность называется послевкусие() (возможно, это проблема, которую я не знаю), то управление переходит к первому виду деятельности, где я делаю это
//OnCreate ecc before
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Bundle extras = data.getExtras();
String name = null;
if(extras != null) {
name = extras.getString("Name");
}
super.onActivityResult(requestCode, resultCode, data);
try
{
Intent people = new Intent(this, MainPeopleActivity2.class);
people.putExtra("Name", name);
startActivity(people);
this.finish();
}
catch(Exception e)
{
Toast.makeText(getApplicationContext(), e, Toast.LENGTH_LONG).show();
}
}
Теперь начать третью деятельность, где берут на себя это намерение
String name;
if (savedInstanceState == null) {
Bundle extras = getIntent().getExtras();
if(extras == null) {
name= null;
} else {
name= extras.getString("Name");
}
} else {
name = (String) savedInstanceState.getSerializable("Name");
}
Но, как вы можете себе представить, это не так, строка пуста.
Где я ошибаюсь? Заранее спасибо.
Это полный класс Логин
public void onSuccess(LoginResult loginResult) {
GraphRequest.newMeRequest(
loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject user, GraphResponse response) {
if (response.getError() != null) {
} else {
id = user.optString("id");
firstName = user.optString("first_name");
lastName = user.optString("last_name");
email = user.optString("email");
Log.i(TAG,"User ID "+ id);
Log.i(TAG,"Email "+ email);
}
Name = firstName + " " + lastName;
Toast.makeText(getApplicationContext(), "Log in with " + Name, Toast.LENGTH_LONG).show();
}
}).executeAsync();
}
В первом действии, почему вы выполняете 'finish()' из 'onResume()'? – TDG
Немного непонятно, что вы делаете. Где вы называете 'startActivityForResult()'? –
Почему бы не остановить автоматически. @TDG –