Как я могу изменить цвет фона кнопки
У меня есть много кнопок в моем приложении калькулятора. Я тестирую только с одной кнопкой, чтобы начать, что идентификатор кнопки "один" и должен изменить цвет, когда я нажимаю кнопку blue theme. Я попробовал следующие методы:
blueTheme = (Button) findViewById(R.id.blueTheme);
blueTheme.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
one.setBackgroundColor(Color.argb(175, 144, 202, 249));
one.setBackgroundColor(Color.parseColor(/*hex code here*/));
one.setBackgroundColor(Color.BLUE);
}
});
Кажется, ничто ничего не делает. Я пытаюсь изменить цвет кнопки в одном действии с помощью опции в другом действии. Вот фактическая кнопка one
:
one = (Button) findViewById(R.id.one);
one.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
result.append("1");
}
});
Xml-код one
в activity_main.xml:
<Button android:id="@+id/one"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_weight="1"
android:background="#CCCCCC"
android:text="1"
android:textColor="#FF6600"
android:textSize="50sp"
android:layout_marginRight="1dp"
android:layout_marginTop="1dp"
android:layout_marginBottom="1dp" />
Идея состоит в том, что будет быть вариантом в другом намерении, где я могу изменить цвета калькулятора, но тестирование на одной кнопке терпит неудачу, не может продолжаться. Спасибо, что уделили мне время.
3 ответа:
Проблема заключается в том, что щелчок от одного действия не может перейти к другому действию, если вы не передадите его.
В упражнении с синей кнопкой темы
blueTheme.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //NOTE: Where I've put MainActivity that should actually be the name // of whatever activity this code is nested in Intent intent = new Intent(MainActivity.this, OtherActivity.class); //use your real class name intent.putExtra(OtherActivity.EXTRA_COLOR, Color.BLUE); startActivity(intent); } });
В вашей другой активности.класс
public class OtherActivity extends Activity { public static String EXTRA_COLOR = "EXTRA_COLOR"; public void onCreate(...) { View one = (Button) findViewById(R.id.one); //NOTE: if you add singleTop to this activity in the manifest // you might need to do this on onNewIntent Intent intent = getIntent(); if (intent.hasExtra(EXTRA_COLOR)) { int color = intent.getIntExtra(EXTRA_COLOR, Color.WHITE); one.setBackgroundColor(color); } } }