2016-04-13 54 views
1

我一直在尋找這個解決方案一段時間,但似乎無法得到一個工作。這裏有一兩個關於這個問題的文章,但我似乎無法讓他們走。我也是Android的新手,雖然我一直在玩和玩幾年,但我仍然對我寫的東西一無所知。隱藏TextView的按鈕

基本上我有一個TextView和一個按鈕。理想情況下,我想在TextView中放置一些文本,按一下按鈕它就消失了,再次按下按鈕並返回。

我已經縮小到需要了解findViewById(R.id.button2)做了什麼,但老實說我有點失落。

我已經添加了我的按鈕的代碼,但道歉,這是這樣一個noob問題

public void onClick(Button v){ 
    TextView t1 = (TextView)findViewById(R.id.editText); 
    v.setVisibility(View.GONE); 

    Button button = (Button) findViewById(R.id.button2); 
    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      TextView t1 = (TextView)findViewById(R.id.TextView); 
      v.setVisibility(View.GONE); 
     } 
    }); 
} 

回答

0

你的代碼中有幾個問題。我不會給你代碼,因爲這不會真的幫助你學習。相反,我會解釋一些事情,讓你嘗試弄明白,或回來更明確的問題。

你知道你使用setContentView設置的xml文件嗎?其中的一些標籤有一個屬性android:id =「xxxx」。該xxxx是該視圖的ID,因此您可以在代碼中查找該視圖。 findViewById函數遍歷屏幕上的所有視圖,並找到具有該id的視圖並將其返回。這給你一個參考視圖,所以你可以改變它。例如,您可以設置其可見性,設置其背景顏色或設置OnClickListener。

所以有一個按鈕,切換另一種觀點的知名度,你需要能夠做以下事情:

1)找到誰的知名度要更改

2)找出視圖什麼其知名度是目前

3)找出你希望它是(什麼它目前是

4)設置知名度

什麼的對面

你需要編寫一個完成所有功能的函數。然後,你需要做到這一點

1)您想使用更改知名度

2)告訴它來調用你的函數的時候按下按鈕。

弄清楚如何分別完成這些步驟,並且您應該能夠將它們放在一起。祝你好運。

0

findViewById(R.id.button2)找到id爲button2的視圖。

你可以在裏面的onClick檢查T1是否可見或不可見(t1.setVisibility(View.GONE);v.setVisibility(View.GONE);),以及View.GONEView.VISIBLE之間切換。

請記住,您的findViewById()應該有一個真實的ID。它們通常設置在activity_name.xml中。

您在onClick中使用onClick。我個人建議用setOnClickListener手動設置監聽器。

您有很多工作要從這些tutorials開始。繼續嘗試並嘗試理解你在做什麼。

-1

我不確定代碼現在能否幫到你。但在這種情況下,這裏是

  final boolean[] isTvVisible = {false}; 
      final TextView t1 = (TextView)findViewById(R.id.editText); 
      t1.setVisibility(View.GONE); 

      Button button = (Button) findViewById(R.id.button2); 
      button.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        if (isTvVisible[0]) { 
         t1.setVisibility(View.GONE); 
         isTvVisible[0] = false; 
        } else { 
         t1.setVisibility(View.VISIBLE); 
         isTvVisible[0] = true; 
        } 
       } 
      }); 
0

看起來像你需要一個toogle按鈕功能..這是一段代碼。
重要:你必須介意@GabeSechan和@ SkyDriver2500答案..

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_layout); 
    //your other code 

    Button button = (Button) findViewById(R.id.button2); 
    final TextView t1 = (TextView) findViewById(R.id.editText); 
    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      t1.setVisibility(t1.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE); 
     } 
    }); 
} 

Happy_Coding;