如何将多个变量从一个Activity传递到另一个Activity

时间:2016-11-13 06:49:20

标签: java android android-intent

如何将多个变量从一个活动传递到另一个活动?

public class MainActivity extends AppCompatActivity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button save = (Button) findViewById(R.id.button1);

        save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                // get EditText by id
                EditText inputTxt_1= (EditText) findViewById(R.id.edittext1);
                EditText inputTxt_2=(EditText)findViewById(R.id.editText2);
                EditText inputTxt_3=(EditText)findViewById(R.id.editText3);
                EditText inputTxt_4=(EditText)findViewById(R.id.editText4);

                // Store EditText in Variable
                String  str1 = inputTxt_1.getText().toString();
                String str2 = inputTxt_2.getText().toString();
                String str3 = inputTxt_3.getText().toString();
                String str4 = inputTxt_4.getText().toString();
            }

            Intent intent = new Intent(MainActivity.this, Main2Activity.class);
            intent.putExtra("inputTxt_1", str1);
            intent.putExtra("inputTxt_2", str2);
            intent.putExtra("inputTxt_3", str3);
            intent.putExtra("inputTxt_4", str4);
            startActivity(intent);
        });
   }
}

它显示无法解析方法putExtrastartActivity,甚至不接受str1和其他等。我是android新手。请帮助。

1 个答案:

答案 0 :(得分:0)

您的问题中的代码格式不正确,因此很难确定,但我认为问题是您过早关闭了onClick方法正文。 Intent设置和startActivity调用是在此方法的主体外部完成的,该方法是您创建的匿名View.OnClickListener类实例的主体。

请改为尝试:

save.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        // get EditText by id
        EditText inputTxt_1= (EditText) findViewById(R.id.edittext1);
        EditText inputTxt_2=(EditText)findViewById(R.id.editText2);
        EditText inputTxt_3=(EditText)findViewById(R.id.editText3);
        EditText inputTxt_4=(EditText)findViewById(R.id.editText4);

        // Store EditText in Variable
        String  str1 = inputTxt_1.getText().toString();
        String str2 = inputTxt_2.getText().toString();
        String str3 = inputTxt_3.getText().toString();
        String str4 = inputTxt_4.getText().toString();

        Intent intent = new Intent(MainActivity.this, Main2Activity.class);
        intent.putExtra("inputTxt_1", str1);
        intent.putExtra("inputTxt_2", str2);
        intent.putExtra("inputTxt_3", str3);
        intent.putExtra("inputTxt_4", str4);
        startActivity(intent);
    }
});