J'essaie de créer une fonction de filtre, j'ai une fenêtre pop-up dans mon activité de recherche, il affiche la liste des commutateurs où l'utilisateur peut éteindre certains d'entre eux .. J'ai eu le pop up pour afficher correctement mais chaque fois que je coche un commutateur, la valeur n'est pas transmise à l'activité de recherche et ne rien faire. voici mon code: recherche extrait d'activité:en utilisant un commutateur dans un popup
filter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
initiatePopupWindow();
}
});
fonction popup (intérieur SearchActivity)
private void initiatePopupWindow() {
try {
// We need to get the instance of the LayoutInflater
LayoutInflater inflater = (LayoutInflater)SearchActivity.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.activity_filter,
(ViewGroup) findViewById(R.id.popup_element));
pwindo = new PopupWindow(layout ,ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,true);
pwindo.showAtLocation(layout, Gravity.CENTER, 0, 0);
switch1 = (Switch) findViewById(R.id.parking);
switch2 = (Switch) findViewById(R.id.delivery);
switch3 = (Switch) findViewById(R.id.reservation);
switch4 = (Switch) findViewById(R.id.bar);
switch5 = (Switch) findViewById(R.id.card);
switch6 = (Switch) findViewById(R.id.wifi);
switch7 = (Switch) findViewById(R.id.terrace);
btnClosePopup = (Button) layout.findViewById(R.id.btn_close_popup);
btnClosePopup.setOnClickListener(cancel_button_click_listener);
switch1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean bChecked) {
if (bChecked) {
parking_filter=1;
Toast.makeText(getApplicationContext(),
"Searching Database using : " + parking_filter,
Toast.LENGTH_SHORT).show();
} else {
parking_filter=0;
Toast.makeText(getApplicationContext(),
"Searching Database using : " + parking_filter,
Toast.LENGTH_SHORT).show();
}
}
});
activity_filter.xml (commutateurs)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/popup_element"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/cardview_light_background"
android:padding="10sp" >
<Switch
android:id="@+id/delivery"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="Has Delivery"
android:layout_below="@+id/reservation"
android:layout_alignParentStart="true" />
<Switch
android:id="@+id/parking"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Has Parking"
android:layout_marginTop="20dp"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
<Switch
android:id="@+id/reservation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Takes Reservations"
android:layout_marginTop="20dp"
android:layout_below="@+id/terrace"
android:layout_alignParentStart="true" />
<Switch
android:id="@+id/terrace"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="outdoor seating"
android:layout_below="@+id/bar"
android:layout_alignParentStart="true" />
<Switch
android:id="@+id/wifi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="Has Wifi"
android:layout_below="@+id/parking"
android:layout_alignParentStart="true" />
<Switch
android:id="@+id/bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="Has Bar"
android:layout_below="@+id/wifi"
android:layout_alignParentStart="true" />
<Switch
android:id="@+id/card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Accept Cards"
android:layout_marginTop="20dp"
android:layout_below="@+id/delivery"
android:layout_alignParentStart="true" />
<Button
android:id="@+id/btn_close_popup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Close"
android:layout_below="@+id/card" />
</RelativeLayout>
J'utilise "toast" pour garder la trace de la valeur "filtre de stationnement", mais sans succès. dans le journal
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Switch.setOnCheckedChangeListener(android.widget.CompoundButton$OnCheckedChangeListener)' on a null object reference