Android - 使用ToggleButton显示/隐藏imageView

时间:2014-01-27 15:18:17

标签: android imageview hide relativelayout show

我试图通过使用toggleButton隐藏/显示imageView,但它不起作用。 这是我的相关部分的代码:
XML:

<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=".MainActivity" >

    <Switch
    android:id="@+id/toggleButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:textOff="auto"
    android:textOn="manuel" />

    <ImageView
    android:id="@+id/compass"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:src="@drawable/compass" />

    <ImageView
    android:id="@+id/compass_direction"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:src="@drawable/compass_direction"
    android:rotation="180" />

</RelativeLayout>

这里是JAVA部分:

public class SnowActivity extends MenuActivity implements SensorEventListener,
    OnCheckedChangeListener, OnTouchListener, ScrollViewListener {

    private Switch toggleButton;
    private ImageView compass;
    private ImageView compass_direction;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_snow);

    toggleButton = (Switch) findViewById(R.id.toggleButton);
    toggleButton.setOnCheckedChangeListener(this);

    compass = (ImageView) findViewById(R.id.compass);
    compass_direction = (ImageView) findViewById(R.id.compass_direction);
    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    sensorEnabled = !isChecked;
    if (sensorEnabled) {
        compass.setVisibility(View.VISIBLE);
        compass_direction.setVisibility(View.VISIBLE);
    } else {
        compass.setVisibility(View.INVISIBLE);
        compass_direction.setVisibility(View.INVISIBLE);
    }
}
}

如果我使用

手动在xml上的imageView上添加可见标记
android:visibility = "visible"

它正在运作。至少图片隐藏在“图形布局”中,但编程上却没有。此外,我还有其他方法在onCheckedChange()方法中调用,因此ToggleButton似乎正确实现。

提前致谢! 问候。

1 个答案:

答案 0 :(得分:0)

将xml布局中的工具:context属性设置为.SnowActivity而不是.MainActivity。