2017-03-02 7 views
0

Ich habe viele Schaltflächen mit unterschiedlichen Farbnamen auf ihnen.Wählen Sie eine Schaltfläche Android

yellow - red - blue 

Ich möchte, wenn der Benutzer tippt auf einem es einen Rahmen um es schafft (wählen Sie die Schaltfläche) und am Ende meiner Tätigkeit habe ich eine andere Taste ausgewählt, um die Farbe Benutzer zu speichern.

<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) { 

     } 
    }); 


} 

wie kann ich ausgewählt habe eine Schaltfläche, wenn auf sie Benutzer klicken und einen Wert (rot, grün, red1) erhalten, wenn der Benutzer speichern klicken Sie auf?

+0

Sie Hintergrundfarbe der Schaltfläche auf Click-Ereignis ändern können –

+2

Sie die Radiobuttons oder Checkboxen müssen nicht regelmäßig Buttons –

+0

zuerst würde Ich mag eine Taste, wenn der Benutzer Klick auswählen, zB: rot. Wenn er auf "Speichern" klickt, zeige ich zum Beispiel eine Nachricht "rot". @Chetan –

Antwort

1

Platz jede Taste in einem FrameLayout. Dies gibt der Schaltfläche einen Rahmen. Wenn Sie die Hintergrundfarbe auf FrameLayout ändern, wird der Rand der Schaltfläche geändert.

<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> 

ein onClickListener für die Schaltflächen Set, die etwa wie folgt aussieht, aber die hartcodierte Farben nicht verwenden - das ist nur ein Beispiel. mLastClicked ist eine Elementvariable, die als Button mLastClicked definiert ist.

@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; 
    } 
} 
1

Sie Ihre Schaltfläche als Form definieren kann es eine Grenze geben, um das Element verwenden (die Datei your.xml Namen und legen Sie sie in res/Drawables):

und finden diese link

Verwandte Themen