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 (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/

4

1 に答える 1

0

これは、あなたのview.getId()is が決して 1 に等しくならないためです。追加してみてください

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

デフォルトのケースの中に..

あなたはその場であなたの問題を得るでしょう...

于 2013-05-20T14:00:42.323 に答える