2017-03-09 210 views
-4
button5.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       image5.setVisibility(View.VISIBLE); 
       if(image5.getVisibility()==View.VISIBLE){ 
        Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 

如果我这样写,我可以得到关于button5的可见性的信息,并且它会生成一个敬酒信息。有什么区别

if(image5.getVisibility()==View.VISIBLE){ 
      Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT).show(); 
     } 
     button5.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       image5.setVisibility(View.VISIBLE); 

      } 
     }); 

但是,如果写这样的代码,我不能得到关于可见性的信息,并且没有烤面包消息。我需要了解clickonlistener块之外的可见性。你可以帮我吗?我需要做什么?

+0

使变量外'clickonlistener',并在'clickonlistener'分配的知名度吧 – miljon

+1

为什么你不能获得知名度? 'view.getVisibility()'。你的代码也没有意义,你指定VISIBLE然后检查它是否可见? – m0skit0

回答

1
if(image5.getVisibility()==View.VISIBLE){ 
      Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT).show(); 
     } 
     button5.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       image5.setVisibility(View.VISIBLE); 

      } 
     }); 

问题:问题是,你只是让图像5可见基础上,按一下按钮,没有哪个会检查时图像5获得可见的任何行动。

在第一个示例中,您将设置可见性并同时检查imageview是否可见,如果是,则显示吐司消息。

在第二个例子中没有发生这种情况。

+0

@MohammedAtif老兄再次检查代码,他正在设置基于按钮点击的imageview可见性!他没有提到任何关于按钮隐形的内容。 –

+0

是的,对不起我的坏,他的代码格式使得它看起来像监听器是在里面,如果阻止,虽然意识到错误后尽快删除评论。 –

0

您可以使用不同的检查来了解的View

像下面的代码:

if(image5.isShown()){ 
Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT).show(); 
} 

您可以点击监听器添加上述检查象下面这样:

button5.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       image5.setVisibility(View.VISIBLE); 
       if(image5.isShown()){ 
    Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT).show(); 
    } 
      } 
     });