我正在设置 CardView 布局(使用库),但我遇到了问题。我可以通过这种方式设置一个 onClickListener (有效):
mCardView = (CardUI) getView().findViewById(R.id.cardsview);
mCardView.setSwipeable(true);
MyCard b = new MyCard("Hi", "Hi", 15);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println(v.toString());
Toast.makeText(getActivity(),"werkt",Toast.LENGTH_LONG).show();
}
});
mCardView.addCard(b);
但是当我尝试循环执行时,我似乎无法获得卡片的 ID。我的卡确实有一个唯一的 ID(只是一个 int 作为 ID)。我像这样添加它们:
int id = 0;
while(!c.isAfterLast()){
String description = "";
System.out.println("Opmerking: " + c.getString(3));
if(!c.getString(3).equals("")){
description = "Opmerkingen: " + c.getString(3);
}
if(recreate){
MyCard a = new MyCard(c.getString(2)+" "+c.getString(1), description, id);
cards.add(a);
mCardView.addCard(a);
a.setOnClickListener(new OnClickListener());
}
c.moveToNext();
id++;
}
onClickListener 是这样的:
private class OnClickListener implements View.OnClickListener {
@Override
public void onClick(View view) {
switch (view.getId()){
case 1:
Toast.makeText(getActivity(), "werkt", Toast.LENGTH_LONG).show();
break;
default: Toast.makeText(getActivity(), "werkt niet", Toast.LENGTH_LONG).show(); break;
}
}
}
但是每次当我单击一个具有 onClickListener 的 while 循环时,我都会得到“werkt niet”,这是开关的默认项。
卡片 ID 是 MyCard 对象中的一个 int。
如果有人可以帮助我,将不胜感激。
编辑:MyCard 对象是需要此库的对象:http: //nadavfima.com/cardsui-view-library/