gpt4 book ai didi

Android Tinder 类似可刷卡 setOnCardDismissedListener

转载 作者:行者123 更新时间:2023-11-30 02:44:34 26 4
gpt4 key购买 nike

我正在尝试制作类似 tinder 的可刷卡。我有这个图书馆 https://github.com/kikoso/Swipeable-Cards .我按照演示操作,效果很好。然而,该演示只有一个 cardModel 被设置在 carddismissedlisterner 上。我怎样才能让适配器中的所有 cardModel 工作?我想在关闭后获取每个 cardModel 的信息(例如标题、文本)

private CardContainer mCardContainer;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.mainlayout);

mCardContainer = (CardContainer) findViewById(R.id.layoutview);

Resources r = getResources();

SimpleCardStackAdapter adapter = new SimpleCardStackAdapter(this);

adapter.add(new CardModel("Title1", "Description goes here", r.getDrawable(R.drawable.picture1)));
adapter.add(new CardModel("Title2", "Description goes here", r.getDrawable(R.drawable.picture2)));
adapter.add(new CardModel("Title3", "Description goes here", r.getDrawable(R.drawable.picture3)));
adapter.add(new CardModel("Title4", "Description goes here", r.getDrawable(R.drawable.picture1)));
adapter.add(new CardModel("Title5", "Description goes here", r.getDrawable(R.drawable.picture2)));
adapter.add(new CardModel("Title6", "Description goes here", r.getDrawable(R.drawable.picture3)));
adapter.add(new CardModel("Title1", "Description goes here", r.getDrawable(R.drawable.picture1)));

CardModel cardModel = new CardModel("Title1", "Description goes here", r.getDrawable(R.drawable.picture1));
String title = cardModel.getTitle();
cardModel.setOnClickListener(new CardModel.OnClickListener() {
@Override
public void OnClickListener() {
Log.i("Swipeable Cards","I am pressing the card");
}
});

cardModel.setOnCardDimissedListener(new CardModel.OnCardDimissedListener() {
@Override
public void onLike() {
Log.i("Swipeable Cards","I like the card");
datasource.createComment(title);
}

@Override
public void onDislike() {
Log.i("Swipeable Cards","I dislike the card");
datasource.deleteComment(title);
}
});

adapter.add(cardModel);

mCardContainer.setAdapter(adapter);
}

/****************** 更新***************** */我尝试在我所有的 cradModel 上重复 setOnCardDismissedListener。如果是 onLike,我想保存 cardModel 的标题。但是,我检查了我的数据库,我确实保存了两次,但是两个标题都是“title2”,我想知道为什么没有保存“title1”。

    CardModel cardModel1 = new CardModel("Title1", "Description goes here",
r.getDrawable(R.drawable.picture1));
final String title1 = cardModel1.getTitle();

CardModel cardModel2 = new CardModel("Title2", "Description goes here",
r.getDrawable(R.drawable.picture1));
final String title2 = cardModel2.getTitle();
adapter.add(cardModel1);
adapter.add(cardModel2);
cardModel1.setOnClickListener(new CardModel.OnClickListener() {
@Override
public void OnClickListener() {
Log.i("Swipeable Cards", "I am pressing the card");
}
});
cardModel1
.setOnCardDimissedListener(new CardModel.OnCardDimissedListener() {
// onLike swipe to left, but we want it to be removed
@Override
public void onLike() {
Log.i("Swipeable Cards", "I like the card");
datasource.createComment(title1);
}

// disLike swipe to right, but we want it to be saved
@Override
public void onDislike() {
Log.i("Swipeable Cards", "I dislike the card");
}
});

cardModel2.setOnClickListener(new CardModel.OnClickListener() {
@Override
public void OnClickListener() {
Log.i("Swipeable Cards", "I am pressing the card");
}
});
cardModel2
.setOnCardDimissedListener(new CardModel.OnCardDimissedListener() {
// onLike swipe to left, but we want it to be removed
@Override
public void onLike() {
Log.i("Swipeable Cards", "I like the card");
datasource.createComment(title2);
}
// disLike swipe to right, but we want it to be saved
@Override
public void onDislike() {
Log.i("Swipeable Cards", "I dislike the card");
}
});

最佳答案

只需在所有卡片模型上重复 setOnCardDimissedListener

如果接口(interface)返回某种 token ,您可以为所有卡片模型设置一个 OnCardDimissedListener,但不幸的是,如果您这样做,您将无法知道对哪张卡片进行了操作。

您需要在您创建的每个卡片模型上设置不同的 OnCardDimissedListener 实例。

编辑 -你有没有看过 github 页面?

Additionally, you can set up a Delegate to be notified when the image is being liked or disliked: 

card.setOnCardDimissedDelegate(new CardView.OnCardDimissedDelegate() {
@Override
public void onLike(CardView cardView) {
Log.d("Swipeable Card", "I liked it");
}

@Override
public void onDislike(CardView cardView) {
Log.d("Swipeable Card", "I did not liked it");
}
});

创建该 OnCardDimissedDelegate 的类实例并将其设置在每张卡片上。

关于Android Tinder 类似可刷卡 setOnCardDismissedListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25295927/

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