所以我有这个观点,有一个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);
答案 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 );