Java Cardview onclick事件不适用于clickable=true

Java Cardview onclick事件不适用于clickable=true,java,android,android-cardview,Java,Android,Android Cardview,这就是我迄今为止所取得的成就 图像适配器 公共类ImageAdapter扩展了BaseAdapter{ 私有上下文; 文本查看文本; 图像视图图像视图; //建造师 公共图像适配器(上下文c){ mContext=c; } public int getCount(){ 返回mThumbIds.length; } 公共对象getItem(int位置){ 返回null; } 公共长getItemId(int位置){ 返回0; } //为适配器引用的每个项目创建新的ImageView 公共视图getV

这就是我迄今为止所取得的成就

图像适配器

公共类ImageAdapter扩展了BaseAdapter{
私有上下文;
文本查看文本;
图像视图图像视图;
//建造师
公共图像适配器(上下文c){
mContext=c;
}
public int getCount(){
返回mThumbIds.length;
}
公共对象getItem(int位置){
返回null;
}
公共长getItemId(int位置){
返回0;
}
//为适配器引用的每个项目创建新的ImageView
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=视图。充气(mContext,R.layout.grid\u视图,空);
RelativeLayout rl=(RelativeLayout)view.findViewById(R.id.relaGrid);
ImageView image=(ImageView)rl.findViewById(R.id.chooseImage);
TextView text=(TextView)rl.findviewbyd(R.id.chooseText);
setImageResource(mThumbIds[position]);
text.setText(mThumbTxt[position]);
Typeface customFont=Typeface.createFromAsset(mContext.getAssets(),“font/faruma.ttf”);
text.setTypeface(自定义字体);
返回rl;
}
//将所有图像保留在阵列中
公共整数[]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\u动作库,R.drawable.ic\u动作库
};
私有字符串[]mThumbTxt={
“早上”、“晚上”、“测试德勒”、“Hepsi”、“测试2”,
“测试3”、“测试4”、“测试5”
};
}
看法


我试图通过onclick listener在cardview上获得涟漪效应,并启动另一个意图。但当ripple effect启用时,onclick事件不起作用。我只看到涟漪效应而已。Onclick侦听器不工作。如何实现两者?请帮忙

全部主要活动

package com.mycompany.alun;
导入android.content.*;
导入android.database.sqlite.*;
导入android.graphics.*;
导入android.os.*;
导入android.support.v7.app.*;
导入android.support.v7.widget.*;
导入android.support.v7.widget.SearchView;
导入android.util.*;
导入android.view.*;
导入android.widget.*;
导入android.widget.AdapterView.*;
导入java.io.*;
导入android.support.v7.widget.Toolbar;
导入android.app.*;
导入android.support.v4.view.*;
公共类MainActivity扩展了AppCompatActivity{
SQLiteDatabase SQLiteDatabase;
数据库助手mDBHelper;
TextView应用程序名称;
搜索视图搜索视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDBHelper=新数据库助手(此);
//检查数据库是否存在
文件数据库=getApplicationContext().getDatabasePath(DatabaseHelper.DBNAME);
if(false==database.exists()){
mDBHelper.getReadableDatabase();
//复制数据库
if(复制数据库(此)){
Toast.makeText(这是“复制数据库成功”,Toast.LENGTH_SHORT).show();
}否则{
Toast.makeText(这是“复制数据错误”,Toast.LENGTH_SHORT).show();
返回;
}
}
//自定义标题
TextView textCustomTitle=(TextView)findViewById(R.id.appName);
Typeface customFont=Typeface.createFromAsset(this.getAssets(),“fonts/faruma.ttf”);
textCustomTitle.setTypeface(自定义字体);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
GridView GridView=(GridView)findViewById(R.id.GridView);
setAdapter(新的ImageAdapter(this));
如果(!isTaskRoot()){
完成();
返回;
}
}
单击鼠标右键(AdapterView a、View v、int position、long id)时出现公共无效{
开关(位置)
{
案例0:
Intent newActivity=newintent(MainActivity.this,ViewDataActivity.class);
星触觉(新活动);
打破
案例1:
Intent newActivity2=新Intent(MainActivity.this,MorningActivity.class);
startActivity(新活动2);
打破
案例2:
Intent new1Activity=newintent(MainActivity.this,ViewDataActivity.class);
startActivity(新1活动);
打破
案例3:
Bitmap src=BitmapFactory.decodeResource(getResources(),R.drawable.daily_life);//我在参考资料中添加的原始文件yourimage.jpg
Bitmap dest=Bitmap.createBitmap(src.getWidth()、src.getHeight()、Bitmap.Config.ARGB_8888);
String yourText=“我的自定义文本添加到图像”;
画布cs=新画布(目的地);
油漆t油漆=新油漆();
tPaint.setTextSize(35);
tPaint.setColor(颜色为蓝色);
t油漆设置样式(油漆、样式、填充);
cs.drawBitmap(src,0f,0f,null);
浮动高度=t点测量文本(“yY”);
浮动宽度=tPaint.measureText(您的文本);
浮点x_坐标=(src.getWidth()-width)/2;
cs.drawText(yourText,x_coord,height+15f,tpoint);//15f是在上边缘和文本之间留出空间,如果要更改,可以
试一试{
dest.compress(Bitmap.CompressFormat.JPEG,100,新文件输出流(新文件(“/sdcard/ImageAfterAddingText.jpg”));
//dest是位图,如果要预览最终图像,也可以在保存前在屏幕上显示
}catch(filenotfounde异常){
//TODO自动生成
android:id="@+id/btnCardView"
private CardView cardview;
cardview = findViewById(R.id.btnCardView);

btnCardView.setOnClickListener(new ....) {
//Your function here
}
CardView cardView = view.findViewById(R.id.card_view_id_from_grid_view)
cardView.setOnClickListener(...) 
interface CustomClick{
     void onClick(int position)
}

private CustomClick customClick;

// Constructor
    public ImageAdapter(Context c, CustomClick customClick) {
        mContext = c;
        this.customClick = customClick;

    }

cardView.setOnClickListener(view -> customClick.onClick(position))
new ImageAdapter(this, this)