单击时如何使ImageView不可见

时间:2013-03-31 10:27:04

标签: android

我是开发人员世界的新手,也是eclipse IDE的新手。我试图创建一个简单的应用程序,当您单击图像时,单击的图像将变为不可见

这里是java代码:

package com.example.capstone;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;

public class Levelone extends Activity implements OnClickListener
{


        Button nextlevel;
        Button Main;
        ImageButton eagle;

        protected void onCreate(Bundle onSavedInstanceState) {
        super.onCreate(onSavedInstanceState);
        setContentView(R.layout.levelone);
        nextlevel = (Button)findViewById(R.id.btnNextlvl);
        nextlevel.setOnClickListener(this);
        Main = (Button)findViewById(R.id.btnMain);
        Main.setOnClickListener(this);
        }

        @Override
        public void onClick(View arg0) {
                // TODO Auto-generated method stub
                if(arg0.getId()==R.id.imgEagle)
                {
                        eagle = (ImageButton)findViewById(R.id.imgEagle);
                eagle.setVisibility(View.GONE);
                }

        }

}

2 个答案:

答案 0 :(得分:2)

您没有将click事件绑定到图像。

    eagle.setOnClickListener(this);

使用findById中的onCreate,就像使用Main一样,找到eagle。其余代码应该保持不变,尽管在findById中再次使用onClick不是必需的,您可以使用(ImageButton) arg0eagle引用。

答案 1 :(得分:1)

onCreate中放了这个

eagle = (ImageButton)findViewById(R.id.imgEagle);
eagle.setOnClickListener(this);

您忘记在布局中使用适当的小部件定义eagle按钮,但未将click事件处理程序附加到eagle

并在onClick

@Override
public void onClick(View arg0) {
    switch(arg0.getId()){
        case R.id.imgEagle:
            eagle.setVisibility(View.GONE);
        break;

        case R.id.btnMain:
            //do something else
        break;

        case R.id.btnNextlvl:
            //do something else     
        break;  
    }
}

最好使用switch来避免if-else个语句的数量。它还使代码更具可读性。