【发布时间】:2017-05-12 17:05:00
【问题描述】:
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");
}
}
}
我正在设置文本框中的文本以查看值是否正确传递但始终为假。抱歉代码不好我在android中很新,实际上是android中的第四个迷你项目及其学校作业。
【问题讨论】:
-
欢迎,这有很多代码行只是为了创建一个传递布尔值的意图。你应该看看如何写一个minimal reproducible example。但我认为你会通过搜索找到关于 SO 的答案
标签: java android android-intent boolean