0

我是开发人员世界的新手,也是 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);
                }

        }

}
4

2 回答 2

2

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

    eagle.setOnClickListener(this);

使用findByIdinonCreateMain定位eagle. 其余代码应该保持不变,尽管不需要findById再次使用,您可以使用或参考。onClick(ImageButton) arg0eagle

于 2013-03-31T10:31:26.477 回答
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语句的数量是很好的。它也使代码更具可读性。

于 2013-03-31T10:35:56.970 回答