想要通过在按钮单击时使用字符串数组来更改背景颜色

时间:2014-08-15 22:01:17

标签: android

所以我有这个观点,有一个textview和一个按钮。在我单击按钮时,textview将使用things_array中的文本进行更新。我还制作了一个带有几个HEX代码的colorcode_array。现在我想要的是当我按下相同的按钮时,背景颜色必须改变为colorcode_array中的一个十六进制代码。

CODE:

<RelativeLayout 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"
tools:context=".MyActivity2"
android:background="#ffdb4b5e">

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Next"
    android:id="@+id/button"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:textColor="#ffffffff"
    android:textSize="72sp"
    android:background="#00000000"
    />

<TextView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="@string/thing1"
    android:id="@+id/textView"
    android:textColor="#ffffffff"
    android:textSize="36sp"
    android:gravity="center"
    android:layout_above="@+id/button"
    />

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my_activity2);
    final TextView tv = (TextView) findViewById(R.id.textView);
    Button n = (Button) findViewById(R.id.button);
    Typeface typeface = Typeface.createFromAsset(getAssets(), "BebasNeue Bold.ttf");
    n.setTypeface(typeface);
    Typeface face = Typeface.createFromAsset(getAssets(),"OSP-DIN.ttf");
    tv.setTypeface(face);

final String[] values = getResources().getStringArray(R.array.things_array);
n.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    Random RAND=new Random();
    String nextValue = values[RAND.nextInt(values.length)];
    tv.setText(nextValue);

1 个答案:

答案 0 :(得分:1)

将布局的根视图设为id,然后使用该视图查找视图并设置背景颜色:

layout.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:id="@+id/layout_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                tools:context=".MyActivity2"
                android:background="#ffdb4b5e">

的onClick:

public void onClick(View v) {
    Random RAND=new Random();
    int position = RAND.nextInt( values.length );
    String nextValue = values[position];
    int colors[] = getResources().getIntArray( R.array.colorcode_array );
    int color = colors[position];

    tv.setText( nextValue );
    View layout = findViewById( R.id.layout_view );
    layout.setBackgroundColor( color );