我是开发人员世界的新手,也是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);
}
}
}
答案 0 :(得分:2)
您没有将click
事件绑定到图像。
eagle.setOnClickListener(this);
使用findById
中的onCreate
,就像使用Main
一样,找到eagle
。其余代码应该保持不变,尽管在findById
中再次使用onClick
不是必需的,您可以使用(ImageButton) arg0
或eagle
引用。
答案 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
个语句的数量。它还使代码更具可读性。