gpt4 book ai didi

android - Cardslib 的 CardView OnCardClickListener 的 onClick 方法未被调用

转载 作者:太空狗 更新时间:2023-10-29 16:15:18 25 4
gpt4 key购买 nike

我在我的应用程序中使用这个库:Card Library : Guide并创建了一张卡片,如示例所示。现在我需要处理一个点击事件,但在实例化以下内容时收到错误:new Card.OnCardClickListener,它说 OnCardClickListener is abstract: cannot be instantiated。在我的 Activity 中,我有这段代码:

    Card card = new Card(getBaseContext());//getContext()
CardHeader header = new CardHeader(getBaseContext());
card.addCardHeader(header);
final CardViewNative cardView = (CardViewNative) findViewById(R.id.carddemo);
cardView.setCard(card);

cardView.setClickable(true);
cardView.setOnClickListener(new Card.OnCardClickListener()); //error here

怎么了?如何将我的卡片设置为可点击,然后处理点击/触摸事件?

编辑

如果我这样使用它:

cardView.setOnClickListener(new Card.OnCardClickListener(){//error here
@Override
public void onClick(Card card, View view) {
// This will execute when the the card is clicked
}
});

它说 无法解析方法 setOnClickListener(it.gmariotti.cardslib.library.internal.Card.OnCardClickListener)

编辑1

你们说的对,我在卡片本身设置了setOnClickListener,就没有报错了,但在点击卡片时它仍然不执行任何操作。这是新代码:

     //Create a Card
Card card = new Card(this);//getContext()

//Create a CardHeader
CardHeader header = new CardHeader(this);
//....
//Add Header to card
card.addCardHeader(header);

//Set card in the cardView
CardViewNative cardView = (CardViewNative) this.findViewById(R.id.carddemo);
cardView.setCard(card);

card.setClickable(true);
card.setOnClickListener(new Card.OnCardClickListener(){
@Override
public void onClick(Card card, View view) {
// This will execute when the the card is clicked
Toast.makeText(CardMariotti.this,"Clickable card", Toast.LENGTH_LONG).show();
}
});

我执行了调试,但从未调用 onClick 方法。怎么会?

最佳答案

Card.OnCardClickListener 是一个接口(interface)。您必须创建类来定义如何使用接口(interface)中的函数。试试这个:

card.setOnClickListener(new Card.OnCardClickListener() {
@Override
public void onClick(Card card, View view) {
// This will execute when the the card is clicked
}
});

答案来源:https://github.com/gabrielemariotti/cardslib/blob/master/doc/CARD.md#clickable-card

关于 Java 接口(interface)的信息:Java Interfaces?

编辑

此外,从卡片包含的 RelativeLayout 中删除 android:clickable="true"。它正在为自己窃取点击。

关于android - Cardslib 的 CardView OnCardClickListener 的 onClick 方法未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29926073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com