在我的主要活动中,我有6个复选框,用于选择该人想要进行的测试的哪些部分。我看了一堆试图弄清楚要做什么的页面,但我无法清楚地理解我应该做什么。
让我们说,在我的主要活动中,我有复选框:
CheckBox grade1 = (CheckBox)findViewById(R.id.grade1);
CheckBox grade2 = (CheckBox)findViewById(R.id.grade2);
CheckBox grade3 = (CheckBox)findViewById(R.id.grade3);
CheckBox grade4 = (CheckBox)findViewById(R.id.grade4);
CheckBox grade5 = (CheckBox)findViewById(R.id.grade5);
CheckBox grade6 = (CheckBox)findViewById(R.id.grade6);
如果他们进行了检查,我想使用这个onClick将它们传递给我的下一个活动(需要添加任何代码才能使其正常工作):
private void setupMessageButton() {
Button messageButton = (Button) findViewById(R.id.main_button);
messageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, Test.class));
}
});
}
然后在我的新活动中,我有if语句,这些语句目前以这种方式编写:
if (grade1.isChecked()){
// Do stuff
}
我正在寻找最简单的方法。 TL:DR - 如果在一个活动中选中了复选框,我如何使用该状态在if语句的另一个活动中执行某些操作?
答案 0 :(得分:3)
使用poss的答案,我能够解决这个问题。我在onClick中的主要活动中有6个复选框。
CheckBox grade1 = (CheckBox)findViewById(R.id.grade1);
CheckBox grade2 = (CheckBox)findViewById(R.id.grade2);
CheckBox grade3 = (CheckBox)findViewById(R.id.grade3);
CheckBox grade4 = (CheckBox)findViewById(R.id.grade4);
CheckBox grade5 = (CheckBox)findViewById(R.id.grade5);
CheckBox grade6 = (CheckBox)findViewById(R.id.grade6);
所以我只需要使用以下代码(也在onClick中)传递它们:
Intent intent = new Intent(MainActivity.this, Test.class);
intent.putExtra("grade1", grade1.isChecked());
intent.putExtra("grade2", grade2.isChecked());
intent.putExtra("grade3", grade3.isChecked());
intent.putExtra("grade4", grade4.isChecked());
intent.putExtra("grade5", grade5.isChecked());
intent.putExtra("grade6", grade6.isChecked());
startActivity(intent);
然后在我的第二项活动中,就像所说的那样,这些需要在顶部:
Boolean check1 = getIntent().getExtras().getBoolean("grade1");
Boolean check2 = getIntent().getExtras().getBoolean("grade2");
Boolean check3 = getIntent().getExtras().getBoolean("grade3");
Boolean check4 = getIntent().getExtras().getBoolean("grade4");
Boolean check5 = getIntent().getExtras().getBoolean("grade5");
Boolean check6 = getIntent().getExtras().getBoolean("grade6");
对于我的if语句,我只是这样做:
if (check1){
// Do stuff
}
if (check2){
// Do more stuff
}
if (check2){
// Etc...
}
感谢您帮助解决这个问题!
答案 1 :(得分:0)
你可以使用Intent extras。
例如,如果选中了checkBox 1,则可以像这样添加额外的意图。
Intent intent = new Intent(MainActivity.this, Test.class);
intent.putExtra("check1", true);
startActivity(intent);
在Test.class中,您只需检索值。
Boolean check1 = getIntent().getExtras().getBoolean("check1");
答案 2 :(得分:0)
您可以使用意图。
在您的MainActivity.java中:
private void setupMessageButton() {
Button messageButton = (Button) findViewById(R.id.main_button);
messageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, Test.class);
intent.putExtra("selectedGrade", v.getId());
startActivity(intent);
}
}
在你的Test.java中:
int selectedGrade = getIntent().getExtras().getint("selectedGrade");
switch (selectedGrade) {
case R.id.grade1: //do something
break;
case R.id.grade2: //do something
break;
....
}