首页 > 解决方案 > 在第二个活动中,我将把数据从单选按钮发送到 textview 的意图放在哪里?

问题描述

这是我通过更新为披萨应用程序编写的代码我想了解通过单击单选按钮或使用 Intent 的复选框收集的数据将放置在哪里,然后移至第二个活动?我只想知道 Intent 在这段代码中的位置?第一个活动

public class MainActivity extends AppCompatActivity {
  private Button button;
  private RadioGroup g1;
  private CheckBox cb1, cb2, cb3, cb4, cb5, cb6;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      g1 = (RadioGroup) findViewById(R.id.G1);
      cb1 = (CheckBox) findViewById(R.id.cb1);
      cb2 = (CheckBox) findViewById(R.id.cb2);
      cb3 = (CheckBox) findViewById(R.id.cb3);
      cb4 = (CheckBox) findViewById(R.id.cb4);
      cb5 = (CheckBox) findViewById(R.id.cb5);
      cb6 = (CheckBox) findViewById(R.id.cb6);
      g1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){
          @Override
          public void onCheckedChanged(RadioGroup group, int checkedId) {
              if (checkedId == R.id.rb1)
              {
                  Toast.makeText(MainActivity.this, "Small", Toast.LENGTH_SHORT).show();
              }
              if (checkedId == R.id.rb2)
              {
                  Toast.makeText(MainActivity.this, "Medium", Toast.LENGTH_SHORT).show();
              }
              if (checkedId == R.id.rb3)
              {
                  Toast.makeText(MainActivity.this, "Large", Toast.LENGTH_SHORT).show();
              }
          }


      });

      cb1.setOnClickListener(new View.OnClickListener(){
          @Override
          public void onClick(View v){
              if (cb1.isChecked()){
                  Toast.makeText(MainActivity.this, "Pepperoni", Toast.LENGTH_SHORT).show();
              }
          }
      });
      cb2.setOnClickListener(new View.OnClickListener(){
          @Override
          public void onClick(View v){
              if (cb2.isChecked()){
                  Toast.makeText(MainActivity.this, "Olive", Toast.LENGTH_SHORT).show();
              }
          }
      });
      cb3.setOnClickListener(new View.OnClickListener(){
          @Override
          public void onClick(View v){
              if (cb3.isChecked()){
                  Toast.makeText(MainActivity.this, "Mushroom", Toast.LENGTH_SHORT).show();
              }
          }
      });
      cb4.setOnClickListener(new View.OnClickListener(){
          @Override
          public void onClick(View v){
              if (cb4.isChecked()){
                  Toast.makeText(MainActivity.this, "Extra Cheese", Toast.LENGTH_SHORT).show();
              }
          }
      });
      cb5.setOnClickListener(new View.OnClickListener(){
          @Override
          public void onClick(View v){
              if (cb5.isChecked()){
                  Toast.makeText(MainActivity.this, "Chicken", Toast.LENGTH_SHORT).show();
              }
          }
      });
      cb6.setOnClickListener(new View.OnClickListener(){
          @Override
          public void onClick(View v){
              if (cb6.isChecked()){
                  Toast.makeText(MainActivity.this, "Green Pepper", Toast.LENGTH_SHORT).show();
              }
          }
      });
      button = findViewById(R.id.button);
      button.setOnClickListener(new View.OnClickListener(){
          @Override
          public void onClick(View v){
              openActivity2();
          }

      });
  }
  public void openActivity2(){
      Intent intent = new Intent(this, Activity2.class);
      startActivity(intent);
  }

}

这是我的单选按钮的代码,我应该把从这里收集的数据发送到第二个活动中的 textView 的意图放在哪里?第二次活动

public class Activity2 extends AppCompatActivity {
    EditText editName, editPhone, editEmail, editAddress;
    TextView total;
    Button buttonSubmit;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_2);

        editName = (EditText) findViewById(R.id.editName);
        editPhone = (EditText) findViewById(R.id.editPhone);
        editEmail = (EditText) findViewById(R.id.editEmail);
        editAddress = (EditText) findViewById(R.id.editAddress);
        total = (TextView) findViewById(R.id.total);
        buttonSubmit = (Button) findViewById(R.id.button2);

        buttonSubmit.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                String name = editName.getText().toString();
                String phone = editPhone.getText().toString();
                String email = editEmail.getText().toString();
                String address = editAddress.getText().toString();
                total.setText("Name:\t" + name + "\nPhone:\t" + phone +"\nEmail:\t" + email + "\nAddress:\t" + address);
            }

        });
    }
}

我在哪里放置 getIntent()?

标签: javaandroid

解决方案


如果我理解正确,当用户从 RadioButton 选择 Size 时,您想将披萨的大小发送到第二个 Activity,您可以在该onCheckedChanged方法上添加额外的字符串并开始您的第二个 Activity

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    g1 = (RadioGroup) findViewById(R.id.G1);
    cb1 = (CheckBox) findViewById(R.id.cb1);
    cb2 = (CheckBox) findViewById(R.id.cb2);
    cb3 = (CheckBox) findViewById(R.id.cb3);
    cb4 = (CheckBox) findViewById(R.id.cb4);
    cb5 = (CheckBox) findViewById(R.id.cb5);
    cb6 = (CheckBox) findViewById(R.id.cb6);
    g1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {

            String size = "";
            if (checkedId == R.id.rb1) {
                Toast.makeText(MainActivity.this, "Small", Toast.LENGTH_SHORT).show();
                size = "Small";
            }
            if (checkedId == R.id.rb2) {
                Toast.makeText(MainActivity.this, "Medium", Toast.LENGTH_SHORT).show();
                size = "Medium";
            }
            if (checkedId == R.id.rb3) {
                Toast.makeText(MainActivity.this, "Large", Toast.LENGTH_SHORT).show();
                size = "Large";
            }
            Intent intent = new Intent(this, Activity2.class);
            intent.putExtra("PizzaSize", size);
            startActivity(intent);
        }

    });

这是你的Activity2

 public class Activity2 extends AppCompatActivity {
        EditText editName, editPhone, editEmail, editAddress;
        TextView total;
        Button buttonSubmit;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_2);

            editName = (EditText) findViewById(R.id.editName);
            editPhone = (EditText) findViewById(R.id.editPhone);
            editEmail = (EditText) findViewById(R.id.editEmail);
            editAddress = (EditText) findViewById(R.id.editAddress);
            total = (TextView) findViewById(R.id.total);
            buttonSubmit = (Button) findViewById(R.id.button2);
            // you can here get your Intent after initializing  the views  
            String size = getIntent().getStringExtra("PizzaSize");
            buttonSubmit.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v){
                    String name = editName.getText().toString();
                    String phone = editPhone.getText().toString();
                    String email = editEmail.getText().toString();
                    String address = editAddress.getText().toString();
                    total.setText("Name:\t" + name + "\nPhone:\t" + phone +"\nEmail:\t" + email + "\nAddress:\t" + address);
                }

            });
        }
    }

推荐阅读