close

常常會遇到要利用很多個Button給使用者點擊

當點了其中一個Button後其他的就要變灰階的狀態

今天發現可以利用selector來更快地執行這件事情


Step 1:

新增Button的按鈕顏色

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!--當被選擇時-->
    <item android:state_selected="true">
        <!--rectangle 長方形 可以畫出直角形,圓角形,弧形等-->
        <shape android:shape="rectangle">
            <corners android:radius="30dip" />
            <solid android:color="#76ba8a" />
        </shape>
    </item>

    <!--沒被選擇時-->
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="30dip" />
            <solid android:color="#f3f3f3" />
        </shape>
    </item>

</selector>

Step 2:

新增Button的文字的顏色

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!--當被選擇時-->
    <item android:state_selected="true"
        android:color="#ffffff" />
    <!--沒被選擇時-->
    <item android:color="#76ba8a" />

</selector>

 

Step 3:

 

package com.example.here.myapplication;

import android.app.Fragment;
import android.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.NetworkImageView;
import com.android.volley.toolbox.Volley;

public class MainActivity extends AppCompatActivity {

    private Button btn1,btn2,btn3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1 = findViewById(R.id.button);
        //預設btn是被選擇的
        btn1.setSelected(true);
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btn1.setSelected(true);
                btn2.setSelected(false);
                btn3.setSelected(false);
            }
        });
        btn2 = findViewById(R.id.button2);
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btn1.setSelected(false);
                btn2.setSelected(true);
                btn3.setSelected(false);
            }
        });
        btn3 = findViewById(R.id.button3);
        btn3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btn1.setSelected(false);
                btn2.setSelected(false);
                btn3.setSelected(true);
            }
        });
    }
}

 

結果會像下面這個樣子

arrow
arrow
    文章標籤
    Android App Button
    全站熱搜

    小小工程師 發表在 痞客邦 留言(0) 人氣()