我这里有四组按钮,RelativeLayout
它们下面有一个空的,每当我单击其中一个时,另一个布局将在空中弹出,RelativeLayout
其中包含另外两组按钮,即ON和OFF。我的问题出现在ON和OFF按钮中,因为我希望在单击按钮ImageView
时出现并在单击ON按钮时消失OFF。这是我的布局和代码:
这是 4 个按钮的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/green_bg"
tools:context=".AleccMainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/please_choose"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#CAFFD8" />
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="fill_parent"
android:layout_height="70dp"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:background="#95FF4F" >
<Button
android:id="@+id/btnAcu"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/tab_acu"
android:onClick="gotoACU" />
<Button
android:id="@+id/btnFan"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/tab_fan"
android:onClick="gotoFan" />
<Button
android:id="@+id/btnLight"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/tab_light"
android:onClick="gotoLight" />
<Button
android:id="@+id/btnHallway"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="@drawable/tab_hallway"
android:onClick="gotoHallway" />
</LinearLayout>
<RelativeLayout
android:id="@+id/rl"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_below="@+id/linearLayout" >
</RelativeLayout>
</RelativeLayout>
这是当我单击这四个中的一个时将出现的布局之一的代码(它们内部具有相同的按钮,但要显示的图像不同):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/green_bg"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="16dp" >
<Button
android:id="@+id/button1"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:onClick="offFAN"
android:text="@string/off" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:onClick="onFAN"
android:text="@string/on" />
</LinearLayout>
<ImageView
android:id="@+id/fanOn"
android:layout_below="@+id/linearLayout1"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:contentDescription="@string/acu"
android:visibility="invisible"
android:src="@drawable/fan_on" />
</RelativeLayout>
这是使用ON和OFF按钮调用布局时的功能:
public void gotoFan(View v){
// Do something in response to button
RelativeLayout rlFAN = (RelativeLayout) findViewById(R.id.rl);
getLayoutInflater().inflate(R.layout.alecc_fan, rlFAN, true);
}
这就是我认为我的问题存在的地方:
public void offFAN (View view) {
String messageToSend = "FANS OFF";
SmsManager.getDefault().sendTextMessage(number, null, messageToSend, null,null);
Toast.makeText(AleccMainActivity.this,"Electric Fans turned OFF", Toast.LENGTH_SHORT).show();
ImageView fanON = (ImageView) findViewById(R.id.fanOn);
fanON.setVisibility(View.GONE);
}
public void onLIGHT (View view) {
String messageToSend = "LIGHTS ON";
SmsManager.getDefault().sendTextMessage(number, null, messageToSend, null,null);
Toast.makeText(AleccMainActivity.this,"Flourescent Lights turned ON", Toast.LENGTH_SHORT).show();
ImageView lightON = (ImageView) findViewById(R.id.lightOn);
lightON.setVisibility(ImageView.VISIBLE);
}
我无法让它工作。当我第一次单击 4 个按钮中的一个,然后单击ON/OFF它似乎很好,但是,每当我单击另一个按钮时,图像不再可见。