フィルタ機能を作成しようとしていますが、検索アクティビティにポップアップウィンドウが表示され、スイッチのリストが表示され、ユーザーはそれらのスイッチをオフにすることができます。 ポップアップ表示がうまく表示されますが、スイッチをチェックするたびに値が検索アクティビティに渡されず、何も実行されません。 は、ここに私のコードです:私は "トースト" を使用していますポップアップ内のスイッチを使用する
filter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
initiatePopupWindow();
}
});
ポップアップ機能(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(スイッチ)
<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>
: 検索活動スニペット「パーキングフィルタ」の値を追跡するが、役に立たない。ログ内
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Switch.setOnCheckedChangeListener(android.widget.CompoundButton$OnCheckedChangeListener)' on a null object reference