我想将一些数据发送到之前的Activity。但它不起作用。
这里我需要发送一些数据。
btnSaveRecord = (Button)findViewById(R.id.buttonSaveRecord);
btnSaveRecord.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(Record_Audio.this , AddPost.class);
intent.putExtra("STRING_I_NEED", newAudioFile);
startActivity(intent);
finish();
}
});
这是我以前的活动
if (savedInstanceState == null)
{
Bundle extras = getIntent().getExtras();
if(extras == null)
{
newString= null;
Log.e("111"," = "+newString);
}
else
{
newString= extras.getString("STRING_I_NEED");
Log.e("222"," = "+newString);
}
} else
{
newString= (String) savedInstanceState.getSerializable("STRING_I_NEED");
Log.e("333"," = "+newString);
}
我需要什么代码,我不明白为什么不工作。
答案 0 :(得分:2)
尝试getting the result from an activity。
总结文章:
static final int REQUEST_CODE = 1; // The request code
...
private void itemClicked() {
Intent intent = new Intent(this, SecondActivity.class);
// Add any data that you wish to send
intent.putExtra("DATA", "value");
startActivityForResult(pickContactIntent, REQUEST_CODE);
}
在第二项活动中,接收您要修改的数据:
String valueToChange = getIntent()。getExtras()。getString(“DATA”);
然后将其放入“编辑”文本或任何您想要使用的内容中,完成后将其设置为结果包。
// Create the result Intent
Intent intent = new Intent();
intent.putExtra("RESULT", "YourNewString");
setResult(Activity.RESULT_OK, intent);
finish();
在您的第一个活动中,覆盖onActivityResult
以获取值。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request it is that we're responding to
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
String newString = data.getExtras().getString("RESULT");
}
}
}
您可能还希望通过数组中的项目位置发送,以便您可以更新它。
答案 1 :(得分:0)
使用它将数据发送到上一个活动
Intent intent = new Intent();
intent.putExtra("done", true);
setResult(RESULT_OK, intent);
FiltersActivity.this.finish();
然后在之前的活动中收到这样的
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.e("Codes for result ", "requestCode = " + requestCode + " resultCode = " + resultCode);
switch (requestCode) {
case SHARE_PHOTO:
if (resultCode == RESULT_OK) {
Boolean isDoneSharing = data.getBooleanExtra("done", false);
}
}
}