Для передачи данных из одного занятия в другое вы можете использовать Intent.putExtra()
. Строка будет выглядеть примерно так:
intent.putExtra(LABEL, juice);
где: LABEL
- это строка, которая позволяет второму действию найти вашу переменную, juice
- ваша переменная.
Чтобы разрешить Проблема, вы можете использовать что-то вроде этого:
public class First extends AppCompatActivity {
private final static String LABEL = "juices";
String juice;
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first);
final CheckBox apple = (CheckBox) findViewById(R.id.apple);
Button nextIntent = (Button) findViewById(R.id.next);
nextIntent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (apple.isChecked()) {
juice = apple.getText().toString();
}
Intent intent = new Intent(getApplicationContext(), Second.class);
intent.putExtra(LABEL, juice);
startActivity(intent);
}
});
}
}
Второе занятие:
public class Second extends AppCompatActivity {
private final static String LABEL = "juices";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first);
Intent intent = getIntent();
String dataReceived = intent.getStringExtra(LABEL);
System.out.println("Your string: " + dataReceived);
}
}
В любом случае, я бы порекомендовал передавать логические значения в следующее занятие, не преобразовывая их в строку, если стоит только отметить / снять флажки во втором макете.
Если в первом упражнении много переменных, вы можете передать их в массив, отправить их другому действию (аналогичным образом) и итерация, чтобы установить / снять флажки.