2015-04-16 3 views
1

У меня проблема с кнопкой Set Color. Set Color - активировать выбранные RadioButton. Например, выбирая первую радиообъектуру, и когда вы нажимаете «Установить цвет», цвет фона меняется на красный. Вот мои коды Android Studio.андроид кнопка радиообмена принять

UPDATE

Мое приложение работает процесс в настоящее время:

Когда я нажимаю, например, на первой RadioButton мой TextView фоне изменения цвета автоматически. Его пропускают мою кнопку «Установить цвет».

Мое предназначение приложения работает.

Когда я нажимаю, например, на первом RadioButton, и после этого я принимаю свой выбор, нажав кнопку «Установить цвет», изменив цвет фона в тексте.

XML файл

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_centerHorizontal="true" 
    android:orientation="vertical"> 


    <RadioGroup 
     android:id="@+id/radioGroup" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:checkedButton="@+id/czerwonyguzik" 
     android:gravity="center_horizontal" 
     android:orientation="horizontal"> 

     <RadioButton 
      android:id="@+id/czerwonyguzik" 
      android:layout_width="wrap_content" 

      android:layout_height="wrap_content" 
      android:background="@color/Czerwony" 
      android:onClick="onRadioClicked" /> 

     <RadioButton 
      android:id="@+id/bialyguzik" 
      android:layout_width="wrap_content" 

      android:layout_height="wrap_content" 
      android:background="@color/White" 
      android:onClick="onRadioClicked" /> 

     <RadioButton 
      android:id="@+id/niebieskiguzik" 
      android:layout_width="wrap_content" 

      android:layout_height="wrap_content" 
      android:background="@color/Niebieski" 
      android:onClick="onRadioClicked" /> 

    </RadioGroup> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="end" 
     android:orientation="horizontal"> 

     <Button 
      android:id="@+id/setcolor" 
      android:layout_width="120dp" 
      android:layout_height="wrap_content" 
      android:text="Set Color" /> 

     <Button 
      android:id="@+id/cancel" 
      android:layout_width="120dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:onClick="anulacjaopcji" 
      android:text="Anuluj" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/textwju" 
      android:layout_width="match_parent" 
      android:layout_height="101dp" 
      android:background="@color/red" 
      android:textColor="@color/White" /> 


    </LinearLayout> 


</LinearLayout> 

JAVA файл

public class LinearLayout extends ActionBarActivity { 

    RadioGroup rg; 
    TextView textView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_linear_layout); 
     TextView textView = (TextView) findViewById(R.id.textwju); 
     rg = (RadioGroup) findViewById(R.id.radioGroup); 


    } 

    public void onRadioClicked(View view) { 
     textView = (TextView) findViewById(R.id.textwju); 

     // czy guzik jest wcisniety 
     boolean wcisniety = ((RadioButton) view).isChecked(); 

     //sprawdzenie ktory guzik jest wcisniety 
     switch (view.getId()) { 
      case R.id.czerwonyguzik: 
       if (wcisniety) 
        textView.setBackgroundColor(getResources().getColor(R.color.Czerwony)); 

       break; 
      case R.id.bialyguzik: 
       if (wcisniety) 
        textView.setBackgroundColor(getResources().getColor(R.color.White)); 
       break; 
      case R.id.niebieskiguzik: 
       if (wcisniety) 
        textView.setBackgroundColor(getResources().getColor(R.color.Niebieski)); 
       break; 
     } 

    } 

    public void anulacjaopcji(View view) { 
     rg.check(R.id.czerwonyguzik); 
     textView.setBackgroundColor(getResources().getColor(R.color.Czerwony)); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_radio_button, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 
+0

Вы вопрос не ясно, что вы хотите> –

+0

Он не работает только для первый радиобудильник? – Ircover

+0

@ghosttalker теперь, когда я нажимаю на один из радиолюбителей, мой фон автоматически изменяется. Я хочу изменить это, я хочу, чтобы сначала щелкнул один из радиокутонов после того, как я хочу нажать «установить цвет», а затем мой backgroud должен измениться. Кнопка «Установить цвет» означает «Принять». –

ответ

0

Попробуйте следующее

RadioButton radioButton1, radioButton2, radioButton3; 
Button setColorButton, cancelButton; 
TextView textwju; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.radiobutton_example); 


    radioButton1 = (RadioButton) findViewById(R.id.czerwonyguzik); 
    radioButton2 = (RadioButton) findViewById(R.id.bialyguzik); 
    radioButton3 = (RadioButton) findViewById(R.id.niebieskiguzik); 
    setColorButton = (Button) findViewById(R.id.setcolor); 
    cancelButton = (Button) findViewById(R.id.cancel); 
    textwju  = (TextView) findViewById(R.id.textwju); 



    setColorButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if(radioButton1.isChecked()) { 
       textwju.setBackgroundColor(getResources().getColor(R.color.blue)); 
      } else if(radioButton2.isChecked()) { 
       textwju.setBackgroundColor(getResources().getColor(R.color.white)); 
      } else if(radioButton3.isChecked()) { 
       textwju.setBackgroundColor(getResources().getColor(R.color.red)); 
      } 

     } 
    }); 

    cancelButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      radioButton1.setChecked(true); 

     } 
    }); 
} 

И не забудьте удалить android:onClick="onRadioClicked" из радиокнопок в XML.

+0

@ Michał Ondycz Как насчет сейчас? Если мой ответ помог, пожалуйста, примите его. Благодарю. –

0

Создание поля для сохранения TextView цвет, а просто сохранить в ней новое значение на onRadioClicked. После того, как вы нажмете «Set Color», наберите textView.setBackgroundColor(savedColor).

0

вы можете получить возможность выбран

int radioButtonID = group.getCheckedRadioButtonId(); 
View radioButton = group.findViewById(radioButtonID); 
int radioId = group.indexOfChild(radioButton); 
String optionText = 
(RadioButton)group.getChildAt(radioId)).getText().toString(); 

теперь вы можете делать все, что вы хотите надеюсь, что это помогает