隐藏和显示图像的按钮在Android中无法正常工作

时间:2016-09-11 11:36:27

标签: java android xml

我正在创建一个简单的应用程序,用按钮显示图像并用另一个按钮隐藏它。当我在show和hide上单击一次时,按钮功能运行良好,但每次单击一次后,两者都停止响应。请帮忙,这是代码: -

package com.androminor.funcolor;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class FunActivity extends AppCompatActivity {
Button button;
Button buttonHide;
ImageView image;
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_fun);
    buttonListener();
}
public void buttonListener() {

    image = (ImageView)findViewById(R.id.imageView);
    button = (Button)findViewById(R.id.buttonChange);
    buttonHide = (Button)findViewById(R.id.buttonHide);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            image.setImageResource(R.drawable.golushapng);
        }
    });
    buttonHide.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            image.setVisibility(View.INVISIBLE);
        }
    });
}
}

-

<?xml version="1.0" encoding="utf-8"?>
<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"
android:id="@+id/relativelayout"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.androminor.funcolor.FunActivity">

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/buttonChange"
    android:text="@string/Golusha"
    android:layout_alignParentBottom="true"
    android:layout_alignParentStart="true" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageView"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="108dp" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hide"
    android:id="@+id/buttonHide"
    android:layout_alignTop="@+id/buttonChange"
    android:layout_alignParentEnd="true" />
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

这是因为您在单击hideButton时将图像的可见性设置为不可见。您需要再次显示图像。

在第一个按钮的onClick侦听器中,添加以下行:

image.setVisibility(View.VISIBLE);