如何在每个项目的列表视图中实现简单的按钮
我在列表视图项中有一些条目。 在那里我有一个简单的“喜欢的按钮”(不像Facebook的按钮)。 你可以看到上面提到的SCREENSHOT; 供参考。 当我点击按钮时, 我希望类似的按钮颜色可以改变,并且当我再次登录时,类似的按钮颜色应该保持不变(改成像)。
此外,所有条目都必须使用json在cust_id,bus_id,Offer_id数据库中填写; 我很清楚。
当我再次点击其颜色已更改的同一按钮(如按钮)时。 必须将其更改回默认颜色,并且必须从数据库中删除数据。
我怎样才能做到这一点...? 1.如何获得点击按钮的价值。 2.如何将更改后的颜色恢复为默认值; 一旦按钮被重新点击。
Plz建议我......
这是按钮代码
holder.b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (clicked) {
holder.b1.setBackgroundResource(R.drawable.like_icon_hover);
} else {
holder.b1.setBackgroundResource(R.drawable.like_icon);
}
clicked = true;
}
});
您需要向该按钮添加侦听器,并使用ValueAnimator,您可以更改按钮颜色,并在再次单击时将其反转回去。
这是实现您的方案的一种简单且最好的方法。 像这样为列表项中的按钮添加onClick监听器。我已经解释了每一行..
// set a default background color to the button
placeHolder.likeButton.setBackgroundColor(Color.RED);
placeHolder.likeButton.setOnClickListener(new View.OnClickListener() {
ValueAnimator buttonColorAnim = null; // to hold the button animator
@Override
public void onClick(View v) {
// first time this will be null
if(buttonColorAnim != null){
// reverse the color
buttonColorAnim.reverse();
// reset for next time click
buttonColorAnim = null;
// add your code here to remove from database
}
else {
final Button button = (Button) v;
// create a color value animator
buttonColorAnim = ValueAnimator.ofObject(new ArgbEvaluator(), Color.RED, Color.BLUE);
// add a update listener for the animator.
buttonColorAnim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animator) {
// set the background color
button.setBackgroundColor((Integer) animator.getAnimatedValue());
}
});
// you can also set a delay before start
//buttonColorAnim.setStartDelay(2000); // 2 seconds
// start the animator..
buttonColorAnim.start();
// add your code here to add to database
}
}
});
这会在第一次点击时改变按钮颜色,然后在下一次点击时恢复颜色。 您也可以设置延迟来改变颜色。
注意:您必须根据您的逻辑设置默认按钮颜色。
@Override
public void onClick(View view) {
if(!check)
{
personViewHolder.img_like_job.setImageResource(R.drawable.ic_thumbsup_blue);
check = true;
}
else
{
personViewHolder.img_like_job.setImageResource(R.drawable.ic_thumbsup);
check = false;
}
}
你可以使用自定义适配器为你的listview(它有自己的layout.xml),并且你可以在其中设置你的clicklistener。
你可以改变颜色或你想要的。 其实我确实有你想要的项目。如果你不能这样做,我会放一些链接。
链接地址: http://www.djcxy.com/p/19861.html上一篇: how to implement simple like button in listview of each item
下一篇: Does hinting return types in protocols have any effect within Clojure?