(ライブラリを使用して) 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 (ID としての int のみ) があります。私は次のようにそれらを追加しています:
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/