我的主要活动使用 startActivityForResult 方法,该方法调用我需要从中返回两个字符串值的活动。我让它返回一个,但即使在这里我读过所有的教程和其他问题,我似乎也无法让它返回两个值。下面是我的代码。
这是我开始第二个活动的地方:
Button button = (Button) findViewById(R.id.add);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivityForResult(addM, 1);
}
});
这是它开始的活动,我需要返回 titleField(现在可以使用)和 yearField 中的文本
public class AddMovie extends Activity {
String movieTitle, movieYear;
EditText titleField, yearField;
Button save;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_movie);
titleField = (EditText) findViewById(R.id.titleField);
yearField = (EditText) findViewById(R.id.yearField);
save = (Button) findViewById(R.id.saveMovie);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent data = new Intent();
data.setData(Uri.parse(titleField.getText().toString()));
setResult(RESULT_OK, data);
//data.setData(Uri.parse(yearField.getText().toString()));
//setResult(RESULT_OK, data);
finish();
}
});
}
}
这是我的主类中接收结果的方法
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode == request_Code)
{
if(resultCode == RESULT_OK)
{
tempTitle = data.getData().toString();
//tempYear = data.getStringExtra("movieYear");
Toast.makeText(this, tempTitle, Toast.LENGTH_SHORT).show();
dbAddMovie(tempTitle, tempYear);
}
}
}
被注释掉的代码是让它接收多个值的一种尝试,尽管它们失败了。在这种情况下的任何帮助都会很棒。谢谢!