0

我正在设置 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/

4

1 回答 1

0

那是因为你的view.getId()is 永远不等于 1。尝试添加

System.out.println("view.getId()  -->>  "+view.getId());

在默认情况下..

你会在那里得到你的问题......

于 2013-05-20T14:00:42.323 回答