title: Cardview onclick event is not working with clickable=true
body: <p>This what I have achieved so far </p>
  
  <p>Image adapter</p>
  
  <pre class="lang-java prettyprint-override"><code>public class ImageAdapter extends BaseAdapter {
      private Context mContext;
      TextView text;
      ImageView imageView;
  
      // Constructor
      public ImageAdapter(Context c) {
          mContext = c;
      }
  
      public int getCount() {
          return mThumbIds.length;
      }
  
      public Object getItem(int position) {
          return null;
      }
  
      public long getItemId(int position) {
          return 0;
      }
  
      // create a new ImageView for each item referenced by the Adapter
      public View getView(int position, View convertView, ViewGroup parent) {
          View view = View.inflate(mContext, R.layout.grid_view, null);
          RelativeLayout rl = (RelativeLayout) view.findViewById(R.id.relaGrid);
  
          ImageView image = (ImageView) rl.findViewById(R.id.chooseImage);
          TextView text = (TextView) rl.findViewById(R.id.chooseText);       
          image.setImageResource(mThumbIds[position]);
          text.setText(mThumbTxt[position]);
          Typeface customFont = Typeface.createFromAsset(mContext.getAssets(), "fonts/faruma.ttf");
          text.setTypeface(customFont);
          return rl;
      }
  
      // Keep all Images in array
      public Integer[] mThumbIds = {
          R.drawable.ic_action_gallery, R.drawable.ic_action_gallery,
          R.drawable.ic_action_gallery, R.drawable.ic_action_gallery,
          R.drawable.ic_action_gallery, R.drawable.ic_action_gallery,
          R.drawable.ic_action_gallery, R.drawable.ic_action_gallery
      };
  
      private String[] mThumbTxt = {
          "Morning", "Evening", "Test deler", "Hepsi", "Test 2", 
          "Test 3", "Test 4", "Test 5"
      };
  }
  </code></pre>
  
  <p>View</p>
  
  <pre class="lang-xml prettyprint-override"><code>&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      android:id="@+id/relaGrid"
      android:descendantFocusability="blocksDescendants"
      android:layout_width="match_parent"
      android:layout_height="match_parent"&gt;
  
      &lt;android.support.v7.widget.CardView
          xmlns:card_view="http://schemas.android.com/apk/res-auto"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          card_view:cardCornerRadius="5dp"
          card_view:cardElevation="6dp"
          android:translationZ="5dp"
          android:clickable="true"
          android:foreground="?android:attr/selectableItemBackground"
          card_view:cardUseCompatPadding="true"&gt;
  
          &lt;RelativeLayout
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:onClick="onCardclick"
              android:clickable="true"
              android:paddingBottom="10dp"&gt;
  
      &lt;ImageView
          android:id="@+id/chooseImage"
          android:layout_width="match_parent"
          android:layout_height="85dp"&gt;
      &lt;/ImageView&gt;
  
      &lt;TextView android:id="@+id/chooseText"
          android:layout_height="match_parent"
          android:layout_width="match_parent"
          android:textSize="18sp"
          android:layout_below="@+id/chooseImage"
          android:gravity="center"
          android:supportsRtl="true"
          android:singleLine="true"
          android:paddingRight="5dp"
          android:paddingLeft="5dp"
          android:ellipsize="marquee"
          android:marqueeRepeatLimit="marquee_forever"&gt;
          &lt;/TextView&gt;
  
          &lt;/RelativeLayout&gt;
  
      &lt;/android.support.v7.widget.CardView&gt;
  
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>I am trying to get ripple effect on cardview with onclick listener start another intent. but when ripple effect is enabled, onclick event is not working. I just only see ripple effect only. Onclick listener doesn't work. How to achieve both? Please help</p>
  
  <p>Full MainActivity</p>
  
  <pre class="lang-java prettyprint-override"><code>package com.mycompany.alun;
  import android.content.*;
  import android.database.sqlite.*;
  import android.graphics.*;
  import android.os.*;
  import android.support.v7.app.*;
  import android.support.v7.widget.*;
  import android.support.v7.widget.SearchView;
  import android.util.*;
  import android.view.*;
  import android.widget.*;
  import android.widget.AdapterView.*;
  import java.io.*;
  
  import android.support.v7.widget.Toolbar;
  import android.app.*;
  import android.support.v4.view.*;
  
  public class MainActivity extends AppCompatActivity {
      SQLiteDatabase sqLiteDatabase;
      DatabaseHelper mDBHelper;
      TextView APP_NAME;
      SearchView searchView;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
          mDBHelper = new DatabaseHelper(this);
  
          //Check exists database
          File database = getApplicationContext().getDatabasePath(DatabaseHelper.DBNAME);
          if(false == database.exists()) {
              mDBHelper.getReadableDatabase();
              //Copy db
              if(copyDatabase(this)) {
                  Toast.makeText(this, "Copy database succes", Toast.LENGTH_SHORT).show();
              } else {
                  Toast.makeText(this, "Copy data error", Toast.LENGTH_SHORT).show();
                  return;
              }
          }
  
          // Custom title
          TextView textCustomTitle = (TextView) findViewById(R.id.appName);
          Typeface customFont = Typeface.createFromAsset(this.getAssets(), "fonts/faruma.ttf");
          textCustomTitle.setTypeface(customFont);
          Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
          setSupportActionBar(toolbar);
  
          GridView gridview = (GridView) findViewById(R.id.gridview);
          gridview.setAdapter(new ImageAdapter(this));
  
          if (!isTaskRoot()) {
              finish();
              return;
          }
      }
  
      public void onCardclick(AdapterView&lt;?&gt; a, View v, int position, long id) {
  
          switch(position)
          {
              case 0:
                  Intent newActivity = new Intent(MainActivity.this,ViewDataActivity.class);
                  startActivity(newActivity);
                  break;
  
              case 1:
                  Intent newActivity2 = new Intent(MainActivity.this,MorningActivity.class);
                  startActivity(newActivity2);
                  break;
  
              case 2:
                  Intent new1Activity = new Intent(MainActivity.this,ViewDataActivity.class);
                  startActivity(new1Activity);
                  break;
              case 3:
                  Bitmap src = BitmapFactory.decodeResource(getResources(), R.drawable.daily_life); // the original file yourimage.jpg i added in resources
                  Bitmap dest = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888);
  
                  String yourText = "My custom Text adding to Image";
  
                  Canvas cs = new Canvas(dest);
                  Paint tPaint = new Paint();
                  tPaint.setTextSize(35);
                  tPaint.setColor(Color.BLUE);
                  tPaint.setStyle(Paint.Style.FILL);
                  cs.drawBitmap(src, 0f, 0f, null);
                  float height = tPaint.measureText("yY");
                  float width = tPaint.measureText(yourText);
                  float x_coord = (src.getWidth() - width)/2;
                  cs.drawText(yourText, x_coord, height+15f, tPaint); // 15f is to put space between top edge and the text, if you want to change it, you can
                  try {
                      dest.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/sdcard/ImageAfterAddingText.jpg")));
                      // dest is Bitmap, if you want to preview the final image, you can display it on screen also before saving
                  } catch (FileNotFoundException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
                  break;
              case 4:
                  new CustomToast(getApplicationContext(), getApplicationContext().getString(R.string.add_favorites));
                  break;
              case 5:
                  Intent searchActivity = new Intent(MainActivity.this,SearchActivity.class);
                  startActivity(searchActivity);
                  break;
              default:
                  Toast.makeText(MainActivity.this, "Wrong Input", Toast.LENGTH_LONG).show();
          }
  
      }
  
      @Override
      public boolean onCreateOptionsMenu(final Menu menu) {
          getMenuInflater().inflate(R.menu.nav_menu, menu);
          MenuItem searchItem = menu.findItem(R.id.action_search);
          return super.onCreateOptionsMenu(menu);
      }
  
      public void getInput(String searchText)
      {
          Intent in = new Intent(this, SearchActivity.class);
          in.putExtra("SEARCH", searchText);
          startActivity(in);
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
          if (item.getItemId() == R.id.action_favorites) {
              Intent newActivity = new Intent(MainActivity.this,FavoritesActivity.class);
              startActivity(newActivity);
          }
  
          if (item.getItemId() == R.id.action_search) {
              Intent newActivity = new Intent(MainActivity.this,SearchActivity.class);
              startActivity(newActivity);
          }
  
          return super.onOptionsItemSelected(item);
      }
  
      private boolean copyDatabase(Context context) {
          try {
              InputStream inputStream = context.getAssets().open(DatabaseHelper.DBNAME);
              String outFileName = DatabaseHelper.DBLOCATION + DatabaseHelper.DBNAME;
              Log.d("ViewDataActivity", "outFileName : "+outFileName);
              OutputStream outputStream = new FileOutputStream(outFileName);
              byte[]buff = new byte[1024];
              int length = 0;
              while ((length = inputStream.read(buff)) &gt; 0) {
                  outputStream.write(buff, 0, length);
              }
              outputStream.flush();
              outputStream.close();
              Log.w("ViewDataActivity","DB copied");
              return true;
          }catch (Exception e) {
              e.printStackTrace();
              return false;
          }
      }
  
  }
  </code></pre>