实现onClickListener

时间:2014-06-16 22:39:06

标签: java android onclicklistener implementation

所以我正在尝试在我的班级中实现OnClickListener,但我似乎无法让它正常工作。这个课程的重点是有两个“按钮”,一个是TextView,另一个是ImageView。单击TextView时,图像变为可见(从一开始就设置为'消失')。然后,当单击图像时,它返回到它已经消失的状态。 当我这样做而没有实现onClick类时,我让它完美地工作,但我宁愿使用实现来使我更容易,因为我将使用多个图像做同样的事情。 这是我的java:

TextView shrimp = (TextView) findViewById(R.id.shrimp);
    final ImageView shrimp1 = (ImageView) findViewById(R.id.stmSrimp);


    shrimp.setTextColor(Color.BLUE);


    shrimp.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            shrimp1.setVisibility(View.VISIBLE);
        }
    });
    shrimp1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            shrimp1.setVisibility(View.GONE);
        }
    });

}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()){
    case R.id.shrimp:
        shrimp1.setVisibility(View.VISIBLE);
        break;
    }

正如您所看到的,顶部是我最初使用OnClickListener的方式,最后一部分是我尝试使用该实现的地方,我在shrimp1.setVisibility(View.VISIBLE);(shrimp1)部分收到错误。我到底做错了什么?我应该通过其他方式引用图像吗?

1 个答案:

答案 0 :(得分:0)

您的类(可能是一个Activity)必须实现接口OnClickListener。然后,将此类设置为侦听器,如下所示:

public class MyActivity extends Activity implements View.OnClickListener {
    TextView shrimp;
    ImageView shrimp1;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        shrimp = (TextView) findViewById(R.id.shrimp);
        shrimp1 = (ImageView) findViewById(R.id.stmSrimp);
        shrimp.setOnClickListener(this);
        shrimp1.setOnClickListener(this);
    }

@Override
public void onClick(View v) {

   switch (v.getId()){
   case R.id.shrimp:
          shrimp1.setVisibility(View.VISIBLE);
   break;
}