单击时如何将喜爱的星形图标设置为ON,再次单击android时将其设置为OFF

时间:2012-01-19 17:43:37

标签: android

我的包含引号列表的活动如下。

package bank.quotes.famous;
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.CheckBox;

public class QuotesActivity extends FamousQuotesActivity  { 
     @Override 
     public void onCreate(Bundle savedInstanceState)  { 

         super.onCreate(savedInstanceState); 
         setContentView(R.layout.quoteslayout); 

         CheckBox favButton = (CheckBox)findViewById( R.id.favbutton );

我尝试在此处添加您的代码但没有成功。 我的xml如下,>

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <ScrollView 
        android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="856dp"
        android:background="@android:color/white"
        android:orientation="vertical" >

        <TableRow
            android:id="@+id/TableRow03"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="0.25" >

            <RelativeLayout
                android:id="@+id/RelativeLayout08"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/forquotesgrey" >



                <TextView
                    android:id="@+id/TextView22"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"
                    android:text="@string/albertquote"
                    android:textAppearance="?android:attr/textAppearanceMedium" />


                <TextView
                    android:id="@+id/TextView21"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentRight="true"
                    android:text="@string/alberteinstein"
                    android:textAppearance="?android:attr/textAppearanceMedium" />


                <CheckBox
                    android:id="@+id/favbutton"
                    style="?android:attr/starStyle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_above="@+id/TextView21"
                    android:layout_alignParentRight="true" />

            </RelativeLayout>
        </TableRow>

        <TableRow
            android:id="@+id/TableRow06"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="0.25" >

            <RelativeLayout
                android:id="@+id/RelativeLayout10"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/forquotesgrey" >


                <TextView
                    android:id="@+id/TextView16"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"
                    android:text="@string/stevequote"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="@android:color/black" />


                <TextView
                    android:id="@+id/TextView15"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentRight="true"
                    android:text="@string/stevejob"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="@android:color/black" />

                <CheckBox
                    android:id="@+id/CheckBox01"
                    style="?android:attr/starStyle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true" />

            </RelativeLayout>
        </TableRow>

如果用户喜欢报价,那么它应该转到收藏夹活动。如果用户最喜欢的话,fav按钮也应始终发光。这是最喜欢的按钮如何工作,不是吗?这是我第一次添加一个喜欢的按钮,所以我不太喜欢这样做。如果你能帮助我,我会非常感激。 谢谢。

1 个答案:

答案 0 :(得分:11)

如果你想使用有状态的drawable,你会发现使用ToggleButton或CheckBox比使用ImageButton更容易。

<CheckBox android:id="@+id/star" 
    style="?android:attr/starStyle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    />