I created a listview adapter which a row contains a button. It works when i clicked on the button , but not when i click on the row This is my main activity
public class MainActivity extends AppCompatActivity {
.
.
.   
ListView lvProducts = (ListView) findViewById(R.id.lvProducts);
lvProducts.addHeaderView(getLayoutInflater().inflate(R.layout.product_list_header, lvProducts, false));
    ProductAdapter productAdapter = new ProductAdapter(this);
    productAdapter.updateProducts(Constant.PRODUCT_LIST);
    lvProducts.setAdapter(productAdapter);
    lvProducts.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            Product product = Constant.PRODUCT_LIST.get(position - 1);
            Intent intent = new Intent(MainActivity.this, ProductActivity.class);
            Bundle bundle = new Bundle();
            bundle.putSerializable("product", product);
            Log.d(TAG, "View product: " + product.getName());
            intent.putExtras(bundle);
            startActivity(intent);
        }
    });
This is the adapter part
public class ProductAdapter extends BaseAdapter  {
bAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Toast.makeText(v.getContext(),"Button "+position,Toast.LENGTH_SHORT).show();
            Cart cart = CartHelper.getCart();
            Log.d(TAG, "Adding product: " + product.getName());
            cart.add(product, 1);
            Intent intent = new Intent(context, ShoppingCartActivity.class);
            context.startActivity(intent);
        }
    });
The xml file of adapter
<?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="200px"
android:layout_margin="5dp"
android:minHeight="50dp"
android:orientation="horizontal"
android:weightSum="1">
<TextView
    android:id="@+id/tvProductName"
    android:layout_width="0dip"
    android:layout_height="match_parent"
    android:layout_weight="0.50"
    android:gravity="center"
    android:text=""/>
<ImageView android:id="@+id/ivProductImage"
    android:layout_width="0dip"
    android:layout_height="match_parent"
    android:layout_weight="0.25"
    android:gravity="center"/>
<TextView
    android:id="@+id/tvProductPrice"
    android:layout_width="0dip"
    android:layout_height="match_parent"
    android:layout_weight="0.24"
    android:gravity="center"
    android:text=""/>
<Button
    android:id="@+id/tvAddItem"
    android:layout_width="69dp"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="A"
    />
</LinearLayout>