I'm retrieving some long values and storing it in List<Long> l.
Here is the logged out value of List<Long> l:
D/lng: [2197, -1007, 4003]
Then, I'm trying to compare it with long values like <=900 or >900.
Here's how:
public void filterRequests(final List<Long> l) {
final int size = l.size();
Log.d("lng", String.valueOf(l));
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
View addD = inflater.inflate(R.layout.filter_dialog, null);
chkBoxLiveRqsts = (AppCompatCheckBox) addD.findViewById(R.id.chkBoxLiveRqsts);
chkBoxSFLRqsts = (AppCompatCheckBox) addD.findViewById(R.id.chkBoxSFLRqsts);
builder.setTitle("Filter based on");
builder.setView(addVenueDialog);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
if (isNetworkAvailable()) {
if (chkBoxLiveRqsts.isChecked()) {
geoQuery = geoFireSportRequests.queryAtLocation(new GeoLocation(currentLatDouble, currentLngDouble), 5);
geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
@Override
public void onKeyEntered(String key, GeoLocation location) {
firebaseDatabase.child(key).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) {
for (int i = 0; i < size; i++){
if (l.get(i) <= 900) {
Map<String, String> newRequest = (Map<String, String>) dataSnapshot.getValue();
postedBy = newRequest.get("postedBy");
userEmail = newRequest.get("userEmail");
currentLatitude = newRequest.get("currentLat");
currentLongitude = newRequest.get("currentLng");
playStartDay = newRequest.get("playStartDay");
playStartTime = newRequest.get("playStartTime");
playEndDay = newRequest.get("playEndDay");
playEndTime = newRequest.get("playEndTime");
prepareDataOfSportRequests();
} else {
}
}
progressDialogAdding.dismiss();
} else {
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
@Override
public void onKeyExited(String key) {
}
@Override
public void onKeyMoved(String key, GeoLocation location) {
}
@Override
public void onGeoQueryReady() {
}
@Override
public void onGeoQueryError(DatabaseError error) {
}
});
} else if (chkBoxSFLRqsts.isChecked()) {
fastItemAdapter.clear();
geoQuery = geoFireSportRequests.queryAtLocation(new GeoLocation(currentLatDouble, currentLngDouble), 5);
geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
@Override
public void onKeyEntered(String key, GeoLocation location) {
firebaseDatabase.child(key).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) {
for (int i = 0; i < size; i++) {
if (l.get(i) > 900) {
Map<String, String> newRequest = (Map<String, String>) dataSnapshot.getValue();
postedBy = newRequest.get("postedBy");
userEmail = newRequest.get("userEmail");
currentLatitude = newRequest.get("currentLat");
currentLongitude = newRequest.get("currentLng");
playStartDay = newRequest.get("playStartDay");
playStartTime = newRequest.get("playStartTime");
playEndDay = newRequest.get("playEndDay");
playEndTime = newRequest.get("playEndTime");
prepareDataOfSR();
} else {
}
}
progressDialogAdding.dismiss();
} else {
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
@Override
public void onKeyExited(String key) {
}
@Override
public void onKeyMoved(String key, GeoLocation location) {
}
@Override
public void onGeoQueryReady() {
}
@Override
public void onGeoQueryError(DatabaseError error) {
}
});
}
} else {
Snackbar snackbar = Snackbar
.make(coordinatorLayout, "No internet connection", Snackbar.LENGTH_SHORT);
snackbar.show();
progressDialogAdding.dismiss();
}
}
});
dialog = builder.create();
dialog.show();
}
The problem is that if (l.get(i) <= 900) or if (l.get(i) > 900) both is not working even when the l.get(i) has values both <=900 and >900, see: D/lng: [2197, -1007, 4003].
I know I'm doing something wrongly here...
Please let me know what is going wrong?
Aucun commentaire:
Enregistrer un commentaire