2013-03-12 38 views
7

我有一個onCheckChangedListener顯示一個textView取決於哪個單選按鈕被選中。我有1個問題和1個問題,我想知道是否有人可以幫助我。如何檢查使用IF的TextView可見性

問題:您可以將收音機組的默認檢查值設置爲NO單選按鈕,這樣就不會檢查任何開始嗎?

問題:如何使用IF語句確定文本視圖是否已經「可見」,如果它被設置爲「不存在」,我將包含當前的代碼。

代碼:

@Override 
public void onCheckedChanged(RadioGroup arg0, int arg1) { 
    switch(arg1){ 
    case R.id.rfolk1: 
     Folk1.start(); 
     TvFolk1.setVisibility(View.VISIBLE); 

     TvFolk2.setVisibility(View.GONE); 

     Play.setVisibility(View.VISIBLE); 
     Pause.setVisibility(View.VISIBLE); 
     Stop.setVisibility(View.VISIBLE); 

     Play2.setVisibility(View.GONE); 
     Pause2.setVisibility(View.GONE); 
     Stop2.setVisibility(View.GONE); 
     break; 
    case R.id.rfolk2: 
     Folk2.start(); 
     TvFolk2.setVisibility(View.VISIBLE); 
     TvFolk1.setVisibility(View.GONE); 

     Play2.setVisibility(View.VISIBLE); 
     Pause2.setVisibility(View.VISIBLE); 
     Stop2.setVisibility(View.VISIBLE); 

     Play.setVisibility(View.GONE); 
     Pause.setVisibility(View.GONE); 
     Stop.setVisibility(View.GONE); 
     break; 
    } 

回答

24

View類包括getVisibility()方法。與此相比:

如:

if (TvFolk1.getVisibility() == View.VISIBLE) 
    TvFolk2.setVisibility(View.GONE); 

爲了縮短下來的代碼,你也可以做一個方法:

public static void goneIfVisible (View v) 
{ 
    if (v.getVisibility() == View.VISIBLE) 
     v.setVisibility(View.GONE); 
} 

並保持在Java的腦海中,變量小寫字母,只使用大寫字母類名稱。

+0

謝謝,這是有益的,我認爲這將是類似的東西,但由於某種原因我日食沒有得到代碼自動填充所以我從中沒有任何提示 – Thomas 2013-03-12 14:10:40

1

//如果TextView已經顯示並且你想隱藏它。

if (TvFolk1.isShown()) { 
    TvFolk2.setVisibility(View.INVISIBLE); 
} 

//爲不選中從單選按鈕組中的所有單選按鈕

RadioGroup rgButton = (RadioGroup)findViewById(R.id.radiobuttongroup); 
rgButton.clearCheck();