在android中的自定义键盘中按下另一个按钮后,重置先前按下的按钮的颜色

时间:2013-08-29 19:19:54

标签: android

我有一个情况。我创建了一个自定义键盘。我必须添加功能,例如当用户点击按钮时,按钮颜色会改变,当用户点击键盘上的下一个按钮时,应重置上一个按钮的颜色,并且应该更改当前按下的按钮的颜色。

here is the my XML code

     <?xml version="1.0" encoding="utf-8"?>
     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/hebrwKeyboardView" android:layout_width="fill_parent"
     android:layout_alignParentBottom="true" android:layout_below="@+id/xsubLayout"
     android:orientation="vertical" android:background="#252625"
     android:visibility="visible" android:layout_height="180sp">
     <TableLayout 
     android:layout_width="fill_parent" android:layout_height="200sp"
     android:orientation="vertical" android:layout_alignParentBottom="true"
     android:clipChildren="true">
     <TableLayout 
     android:layout_width="wrap_content" android:layout_height="200sp"
     android:padding="0sp">
     <TableRow android:layout_width="fill_parent"
     android:layout_height="fill_parent" android:padding="0sp">
     <LinearLayout android:baselineAligned="true"
     android:layout_width="fill_parent" android:layout_height="45sp"
     android:fitsSystemWindows="true">
     <Button android:id="@+id/xQ" android:layout_width="30sp"
     android:layout_height="fill_parent" android:text="Q"
     android:textColor="#000" android:tag="Q" android:padding="0sp"
     android:textStyle="bold"  android:background="@drawable/buttonselector"/>
     <Button android:soundEffectsEnabled="true" android:id="@+id/xW"
     android:layout_width="30sp" android:layout_height="fill_parent"
     android:padding="0sp" android:textColor="#000" android:tag="W"
     android:text="W" android:textStyle="bold" android:layout_gravity="left" />
     <Button android:soundEffectsEnabled="true" android:id="@+id/xE"
     android:layout_gravity="left" android:layout_width="30sp"
     android:padding="0sp" android:layout_height="fill_parent"
     android:text="E" android:tag="E" android:textStyle="bold"
     android:textColor="#000" android:fitsSystemWindows="true" />
     <Button android:soundEffectsEnabled="true" android:id="@+id/xR"
     android:layout_width="30sp" android:layout_gravity="center_horizontal"
     android:layout_height="fill_parent" android:text="R" android:tag="R"
     android:textColor="#000" android:textStyle="bold"
     android:fitsSystemWindows="true" android:ellipsize="marquee" />
     <Button android:soundEffectsEnabled="true" android:id="@+id/xT"
     android:layout_width="33sp" android:layout_height="fill_parent"
     android:layout_gravity="center_horizontal" android:text="T"
     android:tag="T" android:fitsSystemWindows="true"
     android:textColor="#000" android:textStyle="bold"
     android:ellipsize="marquee" />
     <Button android:soundEffectsEnabled="true" android:id="@+id/xY"
     android:layout_width="33sp" android:layout_height="fill_parent"
     android:tag="y" android:layout_gravity="center" android:text="Y"
     android:fitsSystemWindows="true" android:textColor="#000"
     android:textStyle="bold" android:ellipsize="marquee" />
     <Button android:soundEffectsEnabled="true" android:id="@+id/xU"
     android:layout_width="33sp" android:layout_gravity="center_horizontal"
     android:layout_height="fill_parent" android:text="U" android:tag="U"
     android:textColor="#000" android:textStyle="bold"
     android:fitsSystemWindows="true" android:ellipsize="marquee" />
     <Button android:soundEffectsEnabled="true" android:id="@+id/xI"
     android:layout_width="33sp" android:layout_height="fill_parent"
     android:text="I" android:fitsSystemWindows="true" android:tag="I"
     android:textColor="#000" android:textStyle="bold"
     android:layout_gravity="center_horizontal" android:ellipsize="marquee" />
     <Button android:soundEffectsEnabled="true" android:id="@+id/xO"
     android:layout_width="33sp" android:layout_height="fill_parent"
     android:text="O" android:fitsSystemWindows="true" android:tag="O"
     android:textColor="#000" android:textStyle="bold"
     android:layout_gravity="center_horizontal" android:ellipsize="marquee" />
     <Button android:soundEffectsEnabled="true" android:id="@+id/xP"
     android:layout_width="33sp" android:layout_height="fill_parent"
     android:textColor="#000" android:textStyle="bold" android:text="P"
     android:fitsSystemWindows="true" android:tag="P"
     android:layout_gravity="center_horizontal" android:ellipsize="marquee" />
     </LinearLayout>
     </TableRow>
     <TableRow android:layout_width="fill_parent"
     android:layout_height="fill_parent">
     <RelativeLayout android:layout_width="fill_parent"
     android:layout_height="45sp">
     <Button android:layout_alignWithParentIfMissing="true"
     android:soundEffectsEnabled="true" android:id="@+id/xA"
     android:layout_width="30sp" android:layout_centerHorizontal="true"
     android:tag="A" android:layout_gravity="center_horizontal|center_vertical|center"
     android:textColor="#000" android:textStyle="bold"
     android:layout_height="fill_parent" android:text="A"
     android:layout_alignParentLeft="true" android:fitsSystemWindows="true" />
     </LinearLayout>
     </TableRow>
     </TableLayout>
     </TableLayout>
     </RelativeLayout>

1 个答案:

答案 0 :(得分:1)

创建一个名为reset()的函数,并从onClick方法调用它。

public void reset(View v) {
 // TODO Auto-generated method stub 
for(int i=0; i<mB.length; i++) {
 mB[i].setBackgroundResource(android.R.drawable.btn_default);
     }
 }

点击按钮进行调用

@Override public void onClick(View v) { 
reset(v); 
v.setBackgroundResource(R.drawable.buttonselector); 
}