Я пытаюсь использовать CheckBox
в своем приложении. Статус checkBox
(отмечен / не отмечен) я использую в putExtra
, а затем в следующем действии, в зависимости от результата, который я отправляю query
на database
. Проблема с многократной проверкой.
public class Myactivity extends AppCompatActivity implements View.OnClickListener{
CheckBox mCheck1;
CheckBox mCheck2;
CheckBox mCheck3;
ImageButton mImageButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_option);
mImageButton = findViewById(R.id.button_ok_option);
mCheck1 = findViewById(R.id.checkBox1);
mCheck2 = findViewById(R.id.checkBox2);
mCheck3 = findViewById(R.id.checkBox3);
mImageButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(this, Choose_meet_activity.class);
intent.putExtra("1", mCheck1.isChecked());
intent.putExtra("2", ((mCheck1.isChecked()) && (mCheck2.isChecked()));
intent.putExtra("3", mCheck2.isChecked());
startActivity(intent)
}
}
Например, если я использую mCheck1 - в результатах поиска в базе данных с "colour":"red"
, mCheck2 - "size":"big"
. Когда я нажимаю Check1 - все хорошо, все результаты с "red"
приходят ко мне. И тот же положительный результат с mCheck2, то есть при любых условиях. Но когда я нажал mCheck1 && mCheck2 - все результаты с цветом: "red"
, даже если "size"
не "big"
возвращаются ко мне. Что случилось?
РЕДАКТИРОВАНИЕ:
Choose_meet_activity.class:
public class Choose_meet_activity extends AppCompatActivity {
public RecyclerView mResultList;
public FirebaseFirestore mFirestore;
public com.google.firebase.firestore.Query query;
public FirestoreRecyclerAdapter<Places, PlaceViewHolder> firestoreRecyclerAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recycle_activity);
mResultList = findViewById(R.id.list_result);
Boolean l_check1 = getIntent().getExtras().getBoolean("1");
Boolean l_check2 = getIntent().getExtras().getBoolean("2");
Boolean l_check3 = getIntent().getExtras().getBoolean("3");
mFirestore = FirebaseFirestore.getInstance();
if (l_check1) {
query = mFirestore.collection("Places").whereEqualTo("colour", "red");
}else if (l_check2) {
query = mFirestore.collection("Places").whereEqualTo("colour", "red").whereEqualTo("size", "big");
}else if (l_check3) {
query = mFirestore.collection("Places").whereEqualTo("size", "big");
} //...