我正在设置一个CardView布局(使用libary),但我遇到了问题。 我可以用这种方式设置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;
}
}
}
但每当我点击一个有while循环的onClickListener的时候,我就会得到'werkt niet',这是交换机的默认项目。
卡ID是MyCard对象中的int。
如果有人能帮助我,我们将不胜感激。
编辑:MyCard对象是需要此库的对象:http://nadavfima.com/cardsui-view-library/
答案 0 :(得分:0)
这是因为您的view.getId()
永远不会等于1.尝试添加
System.out.println("view.getId() -->> "+view.getId());
在默认情况下..
你会在那里得到你的问题......