#android
#Android
Вопрос:
MainActivity
public class MainActivity extends AppCompatActivity {
private static final int REQ_CODE_TO_ADD = 123;
final ArrayList<Contact> allContact = new ArrayList();
ArrayList<String> name = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Intent intent = new Intent(this,DetailActivity.class);
Button addbt = (Button)findViewById(R.id.addbt);
public void onClickAdd(View v){
Intent intent = new Intent(this,AddContactActivity.class);
startActivityForResult(intent,REQ_CODE_TO_ADD);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == REQ_CODE_TO_ADD){
if(resultCode == 0){
Intent intent = getIntent();
String name2 = intent.getStringExtra("namev");
String email2 = intent.getStringExtra("emailv");
String birthday2 = intent.getStringExtra("birthdayv");
Log.d("AAA",">>>:" name2);
Contact person = new Contact(name2,email2,birthday2);
allContact.add(person);
}}
}
}
Добавить contactactivity
public class AddContactActivity extends AppCompatActivity {
private static final int REQ_CODE_TO_MAIN = 321;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_contact);
}
public void onClickOk(View v){
EditText name = (EditText)findViewById(R.id.nameet);
EditText email = (EditText)findViewById(R.id.email);
EditText birthdate = (EditText)findViewById(R.id.birthdate);
Intent intent = new Intent();
intent.putExtra("namev",name.getText().toString());
intent.putExtra("emailv",email.getText().toString());
intent.putExtra("birthdayv",birthdate.getText().toString());
setResult(0,intent);
finish();
}
}
Addcontactivity Я уже использую intent.putExtra name.getText().toString() и отправляю intent в MainActivity
Почему onActivityResult() в выводе MainActivity Log.d имеет значение null?
Комментарии:
1. вы уверены, что используете правильное намерение?
getIntent();
? Я думаю, это должно бытьdata
…
Ответ №1:
if(resultCode == 0){
//Intent intent = getIntent();
String name2 = data.getStringExtra("namev");
String email2 = data.getStringExtra("emailv");
String birthday2 = data.getStringExtra("birthdayv");
Log.d("AAA",">>>:" name2);
Contact person = new Contact(name2,email2,birthday2);
allContact.add(person);
}}
вам нужно использовать данные, а не GetIntent()
Ответ №2:
Вы используете намерение, которое изначально запустило действие. Вместо этого используйте Intent, который был отправлен в качестве параметра.
Ответ №3:
Нет необходимости в
Intent intent = getIntent();
Намерение уже передано в качестве аргумента, т.е. «данные»
Используйте эту переменную для извлечения данных. Надеюсь, это поможет.
Ответ №4:
Intent intent = getIntent(); // This line is wrong
String name2 = intent.getStringExtra("namev");
String email2 = intent.getStringExtra("emailv");
String birthday2 = intent.getStringExtra("birthdayv");
Измените свой код следующим образом
if(requestCode==2 amp;amp; resultCode==RESULT_OK){
Bundle bundle=data.getExtras();// here "data" is your intent
String string=bundle.getString("message");
Log.i(TAG,"onActivityResult Called..." string);
}