Android 意图数据不返回
我已经浏览了许多其他答案,其中最完整的一个是这个答案:。尽我所能遵循这些原则,当我尝试从返回的意图中获取字符串时,我没有看到任何数据 以下是主活动,它使用startActivityForResult()调用第二个活动,然后在文本视图中显示来自intent的字符串Android 意图数据不返回,android,android-intent,Android,Android Intent,我已经浏览了许多其他答案,其中最完整的一个是这个答案:。尽我所能遵循这些原则,当我尝试从返回的意图中获取字符串时,我没有看到任何数据 以下是主活动,它使用startActivityForResult()调用第二个活动,然后在文本视图中显示来自intent的字符串 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceS
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Bundle extras = getIntent().getExtras();
if (extras != null) {
String myStr = extras.getString("TASK");
TextView tv = (TextView) findViewById(R.id.taskList);
tv.setText(myStr);
}
}//onActivityResult
/** Called when the user clicks the Add Task button */
public void addTask(View view) {
Intent intent = new Intent(this, AddTaskActivity.class);
startActivityForResult(intent, 1);
}
}
第二个活动是我试图将变量字符串任务返回到主活动。
代码被截断为仅返回意图部分:
String task = "foo";
Intent returnIntent = getIntent();
returnIntent.putExtra("TASK", task);
setResult(Activity.RESULT_OK,returnIntent);
finish();
从我所阅读的所有内容来看,这应该是所有涉及的内容,但我遗漏了一些内容,因为第一个活动中没有显示任何内容,我也不清楚原因。在您的示例中,使用传递到onActivityResult(称为数据)中的意图,而不是获取创建活动时传递的意图的getIntent 即 在onActivityResult()方法中,您没有使用getIntent()方法获取数据 onActivityResult()方法有3个参数
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
Bundle extras = data.getExtras(); //THIS IS THE LINE I CHANGED
if (extras != null) {
String myStr = extras.getString("TASK");
TextView tv = (TextView) findViewById(R.id.taskList);
tv.setText(myStr);
}
}//onActivityResult