问题是我无法将活动2中的数据发送到活动1。 以下是活动1(NewContact.java)的快照
在第一个活动中(NewContact)在底部我有一个TextView,我在TextView上实现了一个OnClickListener。当用户单击此TextView时,将打开第二个活动(MapActivity)。
用户需要搜索地址,在底部会出现一个循环复选按钮,如果用户点击该按钮,则会出现一个警告对话框,要求添加该位置。 如果用户单击ADD,则相同的位置将保存到FirstConctivity的TextView,即NewContact。
activity_new_contact.xml
这是TextView的ID
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);
}
});
我还在第一个活动(NewContact)中的onActivityResult中实现了requestCode,该活动位于此函数的底部:
@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";
下面是第二个活动的代码,当用户选择一个位置时,将显示一个警告对话框,要求用户添加或取消。
如果用户单击ADD按钮,则执行函数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);
}
答案 0 :(得分:-1)
你需要通过意图将任何变量传递给你。
public void sendDataBack()
{
String addText = mSearchText.getText().toString();
Intent intent = new Intent(MapActivity.this, NewContact.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
intent.putExtra("textValue", addText);
startActivity(intent);
}
访问下一个NewContact活动的意图。
String addText = getIntent().getStringExtra("textValue");