我有一个情况。我创建了一个自定义键盘。我必须添加功能,例如当用户点击按钮时,按钮颜色会改变,当用户点击键盘上的下一个按钮时,应重置上一个按钮的颜色,并且应该更改当前按下的按钮的颜色。
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>
答案 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);
}