加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何在具有意图的活动之间传递布尔值

发布时间:2020-12-15 04:48:39 所属栏目:Java 来源:网络整理
导读:参见英文答案 How do I pass data between Activities in Android application?????????????????????????????????????46个 public class StartActivity extends AppCompatActivity { private boolean addition=true; private boolean subtraction=false; pri
参见英文答案 > How do I pass data between Activities in Android application?????????????????????????????????????46个

public class StartActivity extends AppCompatActivity {

    private boolean addition=true;
    private boolean subtraction=false;
    private boolean multiplication=false;
    private boolean division=false;

    public static final String ADDITION = "";
    public static final String SUBTRACTION = "";
    public static final String MULTIPLICATION= "";
    public static final String DIVISION = "";

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

        final Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(myToolbar);

        CheckBox additionCheckBox = (CheckBox)findViewById(R.id.additionCheckBox);
        CheckBox multiplicationCheckBox = (CheckBox)findViewById(R.id.multiplicationCheckBox);
        CheckBox divisionCheckBox = (CheckBox)findViewById(R.id.divisionCheckBox);
        CheckBox subtractionCheckBox = (CheckBox)findViewById(R.id.subtractionCheckBox);

        Button playButton = (Button)findViewById(R.id.playButton);

        additionCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
                if(buttonView.isChecked()){
                    addition = true;
                }else{
                    addition = false;
                }
            }
        });

        multiplicationCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
                if(buttonView.isChecked()){
                   multiplication = true;
                }else{
                    multiplication= false;
                }
            }
        });

        subtractionCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
                if(buttonView.isChecked()){
                    subtraction = true;
                }else{
                    subtraction = false;
                }
            }
        });

        divisionCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
                if(buttonView.isChecked()){
                    division = true;
                }else{
                    division = false;
                }
            }
        });

        playButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(!addition && !subtraction && !multiplication && !division){
                    final Dialog dialog = new Dialog(StartActivity.this);
                    dialog.setContentView(R.layout.custom_dialog);
                    dialog.setTitle("My custom dialog");

                    //set the custom dialog components - text,image and button
                    TextView text = (TextView) dialog.findViewById(R.id.textView);
                    text.setText("Android custom dialog example!");


                    Button button = (Button) dialog.findViewById(R.id.button);
                    button.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                        dialog.dismiss();
                        }
                    });

                    dialog.show();
                } else{
                    Intent i = new Intent(StartActivity.this,Main2Activity.class);
                    i.putExtra(ADDITION,addition);
                    i.putExtra(SUBTRACTION,subtraction);
                    i.putExtra(MULTIPLICATION,multiplication);
                    i.putExtra(DIVISION,division);
                    startActivity(i);
                }
            }
        });
}

这是开始活动,我试图向每个基本数学运算发送4个布尔变量,以查看用户检查了哪一个.但是他们在下一次活动中总是假的,我不知道为什么.这是下一个活动:

public class Main2Activity extends AppCompatActivity {

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

        final Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(myToolbar);

        Intent i = getIntent();
        Bundle b = i.getExtras();
        boolean addition = b.getBoolean("ADDITION");
        boolean subtraction = Boolean.getBoolean("SUBTRACTION");
        boolean multiplication = b.getBoolean("MULTIPLICATION");
        boolean division = b.getBoolean("DIVISION");

        int operatorCounter =0;

        TextView additionTextView = (TextView) findViewById(R.id.additionTextView);
        TextView subtractionTextView = (TextView) findViewById(R.id.subtractionTextView);
        TextView multiplicationTextView = (TextView) findViewById(R.id.multiplicationTextView);
        TextView divisionTextView = (TextView) findViewById(R.id.divisionTextView);

        if (addition) {
            additionTextView.setText("addition:checked");
        }else{
            additionTextView.setText("addition:not checked");
        }

        if (subtraction) {
            subtractionTextView.setText("subtraction:checked");
        }else{
            subtractionTextView.setText("subtraction:not checked");
        }

        if (multiplication) {
            multiplicationTextView.setText("multiplication:checked");
        }else{
            multiplicationTextView.setText("multiplication:not checked");
        }

        if (division) {
           divisionTextView.setText("division:checked");
        }else{
          divisionTextView.setText("division:not checked");
        }   
    }
}

我在文本框中设置文本以查看值是否正确传递但始终为false.对不起代码不好我在android中很新,实际上是android及其学校作业中的第四个迷你项目.

解决方法

我看到的问题是id:

public static final String ADDITION = "";
public static final String SUBTRACTION = "";
public static final String MULTIPLICATION= "";
public static final String DIVISION = "";

这应该是一些不同的东西,如:

public static final String ADDITION = "ADDITION";
public static final String SUBTRACTION = "SUBTRACTION";
public static final String MULTIPLICATION= "MULTIPLICATION";
public static final String DIVISION = "DIVISION";

并使用相同的值来检索其他活动中的值

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读