伙计我以编程方式生成了一张卡片,并且还有四张imageview,但是当我点击它们时我无法控制。因为我使用了lparams,我无法使用 setOnClickListener()。我的意思是,我我只想在点击它,卡片或任何组件时做点什么。我怎么能这样做?
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_toLeftOf="@+id/imageButton"
android:layout_toStartOf="@+id/imageButton"
android:layout_above="@+id/imageButton" />
这里卡
final RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams(MATCH_PARENT,MATCH_PARENT);
final CardView cardView = new CardView(this);
cardView.setLayoutParams(lparams);
imagView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
relativeLayout.addView(cardView);
}
});
这是添加卡片,但我想点击该卡片并做一些事情,比如用烤面包片等给出消息。
答案 0 :(得分:0)
首先。为卡片设置 id (以识别该卡片):
cardView.setId(777);
二。设置点击聆听:
cardView.setOnClickListener(this);
最后:
public void onClick(View v){
if(v.getId() == 777){
//Ta daaaaaam
}
}
答案 1 :(得分:0)
你做得很好。但是你错过了一刻。您没有将clickListener()
设置为cardView
。那么你需要做什么:
final RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams(MATCH_PARENT,MATCH_PARENT);
final CardView cardView = new CardView(this);
cardView.setLayoutParams(lparams);
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Show toast or something...
}
}
);
imagView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
relativeLayout.addView(cardView);
}
}
);