RGS
RGS

Reputation: 4253

Select a button android

I have many buttons with different color names on them.

yellow - red - blue

I want, when user tap on one it creates a border around it (select the button) and in the end of my activity I have another button to SAVE the color user selected.

<Button
        android:text="Yellow"
        android:layout_width="111dp"
        android:layout_height="wrap_content"
        android:id="@+id/button1" />

<Button
        android:text="Red"
        android:layout_width="111dp"
        android:layout_height="wrap_content"
        android:id="@+id/button2" />


<Button
        android:text="SAVE"
        android:layout_width="111dp"
        android:layout_height="wrap_content"
        android:id="@+id/buttonsave" />

java

   public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.color);

    Button btnYellow;
    btnYellow = (Button) findViewById(R.id.button1);
    Button btnRed;
    btnRed = (Button) findViewById(R.id.button2);


    Intent intent = getIntent();
    String url2 = intent.getStringExtra("image");




    btnYellow.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

        }
    });


}

how can I selected a button when user click on it and get a value (red,green, red1) when user click in save?

Upvotes: 0

Views: 87

Answers (2)

Cheticamp
Cheticamp

Reputation: 62831

Place each button in a FrameLayout. This will give the button a border. Changing the background color on the FrameLayout will change the border of the button.

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <Button
        android:id="@+id/btnYellow"
        android:layout_width="111dp"
        android:layout_height="wrap_content"
        android:text="Yellow" />
</FrameLayout>

Set an onClickListener for the buttons that looks something like the following, but don't use the hard-coded colors - this is just an example. mLastClicked is a member variable defined as Button mLastClicked.

@Override
public void onClick(View view) {

    if (mLastClicked !=null) {
        ((FrameLayout) mLastClicked.getParent()).setBackgroundColor(0xFFFFFFFF);
    }
    mLastClicked = (Button) view;
    switch (view.getId()) {

        case R.id.btnYellow:
            ((FrameLayout) view.getParent()).setBackgroundColor(0xFFFFFF00);
            break;

        case R.id.btnRed:
            // Similar to yellow
            break;

        case R.id.btnSave:
            // Do something with mLastClicked to save it
            break;
    }
}

Upvotes: 1

vijay chhalotre
vijay chhalotre

Reputation: 416

You can define your button as a shape To give it a border, use the element (name the file your.xml and place it in res/drawables):

and Refer this link

Upvotes: 1

Related Questions