onClick的加星标功能

时间:2014-03-08 13:29:23

标签: android android-drawable togglebutton

您好我的视图中有一个imageView。在我的活动中,我在onCreate中创建一个ArrayList,如果你单击imageView,将添加一个名称。因此,如果列表包含此名称,则将从drawable文件夹加载填充的星形图像。这是我的问题:我怎么写你点击imageView,其他图像将被加载?因此如果填充的星星应该加载空星。

    final ImageView img = (ImageView) rootView.findViewById(R.id.imageView1);

    if (starredList.contains(txt1[p])){
        img.setImageResource(R.drawable.ic_action_important);       
    }
    else{
        img.setImageResource(R.drawable.ic_action_not_important);
    }



    img.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View view)
        {

        Object tag = img.getTag();

            int id = tag == null ? -1 :(Integer) tag;


            if (id==R.drawable.ic_action_important){
                img.setImageResource(R.drawable.ic_action_not_important);

            }
            if (id==R.drawable.ic_action_not_important){
                    img.setImageResource(R.drawable.ic_action_important);
                 starredList.add(txt1[p]);
                 Toast.makeText(getActivity(), txt1[p]+" wurde ihren Favoriten hinzugefügt", Toast.LENGTH_LONG).show();

                } 




        }
    });

提前谢谢!

1 个答案:

答案 0 :(得分:0)

使用ToggleButton并通过drawable处理selector

使用selector文件夹中名为favorite_button_image.xml的{​​{1}}创建XML drawable,并在以下XML中将您的drawable添加为drawable,如下所示...

item

将此<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_action_important" android:state_checked="true"/> <item android:drawable="@drawable/ic_action_not_important" android:state_checked="false"/> </selector> 设置为favorite_button_image中的drawable,如下所示...并将此ToggleButton添加到ToggleButton而不是Layout XML。你会得到你想做的事。

ImageView