Проблема в том, что я не могу отправить данные из операции 2 в операцию 1. Вот снимок для операции 1 (NewContact.java)
В первом действии (NewContact) Внизу у меня есть TextView, я реализовал OnClickListener для этого TextView.Когда пользователь нажимает на это TextView, открывается второе действие (MapActivity).
Пользователь должен найти адрес и внизуПоявится круговая кнопка проверки, если пользователь нажимает на эту кнопку, появляется диалоговое окно с предупреждением, в котором будет предложено добавить местоположение или нет.Если пользователь нажимает на ADD, то же местоположение будет сохранено в TextView of FirstActivity, который является NewContact.
activity_new_contact.xml
Это идентификатор для TextView
android:id="@+id/etUserAddress"
NewContact.java
TvAddress = (TextView)findViewById(R.id.etUserAddress);
Intent intent = getIntent();
String addText = intent.getStringExtra(MapActivity.EXTRA_TEXT);
TvAddress.setText(addText);
TvAddress.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
Intent intent = new Intent(NewContact.this, MapActivity.class);
startActivityForResult(intent,1);
}
});
Я также реализовал requestCode в onActivityResult в первом действии (NewContact), которое находится внизу в этой функции:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == REQUEST_CODE_GALLERY && resultCode == RESULT_OK)
{
Uri imageUri = data.getData();
CropImage.activity(imageUri)
.setGuidelines(CropImageView.Guidelines.ON)
.setAspectRatio(1, 1)
.start(this);
}
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE)
{
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK)
{
Uri resultUri = result.getUri();
mImageView.setImageURI(resultUri);
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE)
{
Exception error = result.getError();
}
}
super.onActivityResult(requestCode, resultCode, data);
//this requestCode is to send the data from one activity to other
if (requestCode == 1)
{
if (resultCode == RESULT_OK)
{
String myStr = data.getStringExtra("EXTRA_TEXT");
TvAddress.setText(myStr);
}
}
}
MapActivity.java
Во втором упражнении я также создал общедоступную статическую строку:
public static final String EXTRA_TEXT =
"com.example.sahil.phonebook.EXTRA_TEXT";
Ниже приведен код для второго занятия, когда пользователь выбирает местоположение, затем отображается диалоговое окно с запросом пользователя.ДОБАВИТЬ или ОТМЕНИТЬ.Если пользователь нажимает кнопку «ДОБАВИТЬ», то функция sendDataBack();
будет выполняться:
MapActivity.java
sendAddress.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder a_builder = new AlertDialog.Builder(MapActivity.this);
a_builder.setMessage("Add Location?").setCancelable(false).setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{ //if user clicks on yes button then this will implement
sendDataBack();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alertDialog = a_builder.create();
alertDialog.setTitle("Confirm Location");
alertDialog.show();
}
});
Ниже приведен код функции sendDataBack();
public void sendDataBack()
{
String addText = mSearchText.getText().toString();
Intent intent = new Intent(MapActivity.this, NewContact.class);
intent.putExtra(EXTRA_TEXT, addText);
setResult(1,intent);
}