Android:如何在布局中为点击的按钮着色并将未点亮的样式设置为其他人?

时间:2015-11-24 09:19:47

标签: android android-layout button android-linearlayout

我有以下布局:

<!-- GROUPED BUTTONS -->
        <LinearLayout
            android:id="@+id/group_button_layout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:gravity="center"
            android:layout_centerHorizontal="true">

            <Button
                android:id="@+id/group_button_week"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/white"
                android:background="@color/app_blue"
                android:textSize="12sp"
                android:text="Week"/>

            <Button
                android:id="@+id/group_button_month"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/app_blue"
                android:textSize="12sp"
                android:padding="0dp"
                android:text="Month"/>

            <Button
                android:id="@+id/group_button_quarter"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/app_blue"
                android:background="@color/white"
                android:textSize="12sp"
                android:text="Quarter"/>

            <Button
                android:id="@+id/group_button_half_year"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/app_blue"
                android:background="@color/white"
                android:textSize="12sp"
                android:text="Half Year"/>
        </LinearLayout>
        <!-- //GROUPED BUTTONS -->

我想将样式(背景和文本颜色)更改为单击按钮,所有其他按钮(单击一个除外)设置默认(未单击)样式。

我怎么能以正确的方式做到这一点?

非常感谢您的任何建议。

2 个答案:

答案 0 :(得分:1)

OnClickListener:

for index in 0...json1["trk"]["trkseg"]["trkpt"].length-1 {

    lat = Double(json1["trk"]["trkseg"]["trkpt"][index]["@attributes"]["lat"].asString!)!

    long = Double(json1["trk"]["trkseg"]["trkpt"][index]["@attributes"]["lon"].asString!)!
}

答案 1 :(得分:0)

在按钮上使用 setOnTouchListener 并检查ACTION_DOWNACTION_CANCELACTION_UP MotionEvent

button1.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            // when you touch button for click 
            if(event.getAction() == MotionEvent.ACTION_DOWN){
                 button.setBackgroundResource(R.color.onClickColor);   
                 text.setBackgroundResource(R.color.onClickColor);
                 // set background of button and text       
            }
            // when you remove touch from button 
            if(event.getAction() == MotionEvent.ACTION_CANCEL){
                button1.setBackgroundResource(R.color.onClickColor);  
                text.setBackgroundResource(R.color.onClickColor);
                // set background of button and text    
            }
            // when you release touch from button 
            if(event.getAction() == MotionEvent.ACTION_UP){
                button1.setBackgroundResource(R.color.onClickColor);  
                text.setBackgroundResource(R.color.onClickColor);
                // set background of button and text    
            }
            return true;
        }
    });