所以我正在尝试在我的班级中实现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)部分收到错误。我到底做错了什么?我应该通过其他方式引用图像吗?
答案 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;
}