2017-03-09 16 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に割り当てて、それが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); 

      } 
     }); 

問題:問題は、あなただけのボタンのクリックに基づいてimage5を可視化されているとImage5が見え取得するたびにチェックしますノーアクションがあります。

最初の例では、可視性を設定していると同時に、画像ビューが表示されているかどうかをチェックしています。はいの場合はトーストメッセージを表示します。

2番目の例の場合は起こりません。

+0

@MohammedAtifおかげでコードをもう一度チェックし、彼はボタンクリックに基づいて画像ビューの可視性を設定しています!彼はボタンの不可視性について何も言及していない。 –

+0

さて、私の悪い、申し訳ありませんが、彼のコードの書式設定は、リスナーがブロックの内側にあるように見せて、間違いをすぐに理解した後にコメントをすぐに削除しました。 –

0

visibilityViewの異なるチェックを使用することができます。あなたは以下のようなあなたのクリックのリスナーにチェックの上に追加することができます

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(); 
    } 
      } 
     }); 
関連する問題