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"; 并使用相同的值来检索其他活动中的值 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |