Как установить setOnTouchListener на элемент из адаптера?

У меня есть xml адаптер

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="@drawable/for_bucket_adapter"
    android:gravity="center"
    android:layout_marginTop="8sp"
    android:id="@+id/LAzhaa">

    <TextView
        android:id="@+id/textok1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="22sp"
        android:textColor="@color/white"
        android:layout_gravity="center"
        android:gravity="center"/>

    <TextView
        android:id="@+id/textok2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/white"
        android:textSize="22sp"/>

    <Button
        android:layout_gravity="center"
        android:layout_width="22sp"
        android:layout_height="22sp"
        android:layout_marginStart="5sp"
        android:background="@drawable/plus"
        android:id="@+id/plus"/>

    <Button
        android:layout_gravity="center"
        android:layout_width="22sp"
        android:layout_height="22sp"
        android:layout_marginStart="5sp"
        android:background="@drawable/minus"
        android:id="@+id/minus"/>

</LinearLayout>

Его я устанавливаю через адаптер в основной xml ресурс. И как можно установить setOnTouchListene на весь лояут или на кнопки, когда я получить id в активности путем

Button b = findViewById(R.id.plus);

У меня выходит NullPointExeption. активность java:

public class BasketPage extends Activity implements OnTouchListener {


    private static boolean costilek;
    public List<Map<String, String>> pizzaNames;

    public ListAdapter adapter;
    public Button plusik;
    public Button minusik;
    public String name;
    public String phoneNumber;
    public String street;
    public String home;
    public String porch;
    public String level;
    public String apprt;
    public String comment;
    public boolean b;

    WorkBD workBD;
    MainActivity mainActivity;

    public void culculateFprice(){
        TextView FinalBuy = (TextView) findViewById(R.id.buyText);
        int Pprice = MainActivity.pepperoni.getFinalPrice();
        int Cprice = MainActivity.calzone.getFinalPrice();
        int QCprice = MainActivity.quattrostagioni.getFinalPrice();
        int QFprice = MainActivity.quattroformaggi.getFinalPrice();
        int Mprice = MainActivity.mexican.getFinalPrice();
        int FinalPrice = Pprice + Cprice + QCprice + QFprice + Mprice;
        FinalBuy.setText("Стоимось вашего заказа: " + FinalPrice + " руб.");
    }



    public void creator() {
        pizzaNames = new ArrayList<>();
        System.out.println(MainActivity.pepperoni.getCount());
        if (MainActivity.pepperoni.getCount() != 0) {
            Map<String, String> map = new HashMap<>();
            map.put("text1", "Пепперони ");
            map.put("text2", MainActivity.pepperoni.getCount() + " шт.");
            pizzaNames.add(map);
        }
        if (MainActivity.calzone.getCount() != 0) {
            Map<String, String> map = new HashMap<>();
            map.put("text1", "Кальцоне ");
            map.put("text2", MainActivity.calzone.getCount() + " шт.");
            pizzaNames.add(map);
        }
        if (MainActivity.quattrostagioni.getCount() != 0) {
            Map<String, String> map = new HashMap<>();
            map.put("text1", "Четыре сезона ");
            map.put("text2", MainActivity.quattrostagioni.getCount() + " шт.");
            pizzaNames.add(map);
        }
        if (MainActivity.quattroformaggi.getCount() != 0) {
            Map<String, String> map = new HashMap<>();
            map.put("text1", "Четыре сыра ");
            map.put("text2", MainActivity.quattroformaggi.getCount() + " шт.");
            pizzaNames.add(map);
        }

        if (MainActivity.mexican.getCount() != 0) {
            Map<String, String> map = new HashMap<>();
            map.put("text1", "Мексиканская ");
            map.put("text2", MainActivity.mexican.getCount() + " шт.");
            pizzaNames.add(map);
        }
    }

    @Override

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.bascket_page);
        mainActivity= new MainActivity();
        ListView listView = (ListView) findViewById(R.id.titles);
        onButton();
        culculateFprice();
        workBD = new WorkBD(this);
        listView.setOnTouchListener(this);
    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (costilek) {
            onButton();
        }
        return true;
    }


    public void onButton(){
        Log.i(TAG, "HEY I`M IN ON BUTTON");
        creator();
        BaseAdapter adapter;
        ListView listView = (ListView) findViewById(R.id.titles);
        String [] from = {"text1" , "text2"};
        int [] to = {R.id.textok1 , R.id.textok2};
        adapter = new CustomAdapter(this, pizzaNames, R.layout.adapter_backet, from, to);
        if(costilek) {
            listView.setAdapter(null);
            adapter.notifyDataSetChanged();
        }
        try {
            listView.setAdapter(adapter);
        }
        catch (NullPointerException e){}
        culculateFprice();
        costilek = false;
    }
...

public static void Cotil(){
        costilek = true;
    }
}

адаптер:

public class CustomAdapter extends SimpleAdapter {
    public int i = 1;

    public CustomAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) {
        super(context, data, resource, from, to);
    }

        @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        View inflatedLayout = super.getView(position, convertView, parent);
        Button plus = inflatedLayout.findViewById(R.id.plus);
        Button minus = inflatedLayout.findViewById(R.id.minus);
        final ArrayList<String> Pizzas = new ArrayList<>();
        if (MainActivity.pepperoni.getCount() != 0)
            Pizzas.add("pizza1");
        if (MainActivity.calzone.getCount() != 0)
            Pizzas.add("pizza2");
        if (MainActivity.quattrostagioni.getCount() != 0)
            Pizzas.add("pizza3");
        if (MainActivity.quattroformaggi.getCount() != 0)
            Pizzas.add("pizza4");
        if (MainActivity.mexican.getCount() != 0)
            Pizzas.add("pizza5");

        plus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i(TAG, "Button was clicked for list item " + position);
                boolean b = true;
                int i = 0;
                while (b) {
                    i++;
                    String j = "pizza" + i;
                    if (j.equals(Pizzas.get(position))) {

                        b = false;

                        if (i == 1) {
                            int y = MainActivity.pepperoni.getCount();
                            MainActivity.pepperoni.setCount(y + 1);
                            BasketPage.Cotil();
                        }

                        if (i == 2) {
                            int y = MainActivity.calzone.getCount();
                            MainActivity.calzone.setCount(y + 1);
                            BasketPage.Cotil();
                        }

                        if (i == 3) {
                            int y = MainActivity.quattrostagioni.getCount();
                            MainActivity.quattrostagioni.setCount(y + 1);
                            BasketPage.Cotil();
                        }

                        if (i == 4) {
                            int y = MainActivity.quattroformaggi.getCount();
                            MainActivity.quattroformaggi.setCount(y + 1);
                            BasketPage.Cotil();
                        }

                        if (i == 5) {
                            int y = MainActivity.mexican.getCount();
                            MainActivity.mexican.setCount(y + 1);
                            BasketPage.Cotil();
                        }
                    }

                }
            }
        });


        minus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i(TAG, "Button was clicked for list item " + position);
                boolean b = true;
                int i = 0;
                while (b) {
                    i++;
                    String j = "pizza" + i;
                    if (j.equals(Pizzas.get(position))) {

                        b = false;

                        if (i == 1) {
                            int y = MainActivity.pepperoni.getCount();
                            MainActivity.pepperoni.setCount(y - 1);
                            BasketPage.Cotil();
                        }

                        if (i == 2) {
                            int y = MainActivity.calzone.getCount();
                            MainActivity.calzone.setCount(y - 1);
                            BasketPage.Cotil();
                        }

                        if (i == 3) {
                            int y = MainActivity.quattrostagioni.getCount();
                            MainActivity.quattrostagioni.setCount(y - 1);
                            BasketPage.Cotil();
                        }

                        if (i == 4) {
                            int y = MainActivity.quattroformaggi.getCount();
                            MainActivity.quattroformaggi.setCount(y - 1);
                            BasketPage.Cotil();
                        }

                        if (i == 5) {
                            int y = MainActivity.mexican.getCount();
                            MainActivity.mexican.setCount(y - 1);
                            BasketPage.Cotil();
                        }
                    }
                }
            }
        });
        return inflatedLayout;
    }
}

Ответы (0 шт):