如何使用intent接收多个值

use*_*670 2 java android

我有我的主要活动使用startActivityForResult方法,该方法调用我需要从中返回两个字符串值的活动.我有它的工作返回一个,但即使有所有的教程和其他问题在这里,我已经阅读,我似乎不能让它返回两个值.以下是我的代码.

这是我开始第二项活动的地方:

Button button = (Button) findViewById(R.id.add);
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                startActivityForResult(addM, 1);    
            }

        });
Run Code Online (Sandbox Code Playgroud)

这是它启动的活动,我需要返回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();

        }
    });
}



}
Run Code Online (Sandbox Code Playgroud)

这是我的主类中接收结果的方法

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);

                }
            }

        }
Run Code Online (Sandbox Code Playgroud)

注释掉的代码是尝试接收多个值的尝试,尽管它们失败了.对这种情况的任何帮助都会很棒.谢谢!

nun*_*des 8

你应该使用类似的东西:

Intent returnIntent = new Intent();
returnIntent.putExtra("title",titleField.getText().toString());
returnIntent.putExtra("year",yearField.getText().toString());
setResult(RESULT_OK,returnIntent);     
finish(); 
Run Code Online (Sandbox Code Playgroud)

在您的主要活动上,onActivityResult:

tempTitle = data.getStringExtra("title");
tempYear =  data.getStringExtra("year");
Run Code Online (Sandbox Code Playgroud)