2013-01-15 211 views
1

我想在用戶單擊按鈕時顯示我的列表視圖,並在點擊按鈕時再次隱藏它。這是的onClick監聽器有問題的按鈕:設置ListView的可見性

connectBtn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      if(open){ 
       mDbAdapter.close(); 
       connectBtn.setText("Open Database"); 
       open = false; 
       hideUI(); 


      }else{ 
       mDbAdapter = new ContactsDbAdapter(v.getContext()); 
       mDbAdapter.open(); 
       connectBtn.setText("Close Database"); 
       open = true; 
       showUI(); 
       //retrieve data 
       fillData(); 
      } 
     } 
    }); 

這是顯示用戶界面()方法:

protected void showUI() { 
    fName.setVisibility(View.VISIBLE); 
    lName.setVisibility(View.VISIBLE); 
    fNameBox.setVisibility(View.VISIBLE); 
    lNameBox.setVisibility(View.VISIBLE); 
    createBtn.setVisibility(View.VISIBLE); 
    this.setVisible(true); 

    createBtn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      mDbAdapter.createContact(fNameBox.getText().toString(), lNameBox.getText().toString()); 
      fillData(); 
     } 
    }); 
} 

和hideUI()方法:

protected void hideUI() { 
    fName.setVisibility(View.INVISIBLE); 
    lName.setVisibility(View.INVISIBLE); 
    fNameBox.setVisibility(View.INVISIBLE); 
    fNameBox.clearComposingText(); 
    lNameBox.setVisibility(View.INVISIBLE); 
    lNameBox.clearComposingText(); 
    createBtn.setVisibility(View.INVISIBLE); 
    this.setVisible(false); 

} 

它工作正常當我將可見性設置爲true時。但是,當我將它設置爲false時,我會看到一個黑屏,但沒有崩潰或錯誤。任何想法?

備註:this.setVisible(false);。我的類擴展ListActivity。

+0

我希望setVisible(false)在一個活動上做到這一點。我不明白你的問題? – njzk2

+0

如何隱藏listView,但保持顯示的活動 – Javacadabra

回答

3
setVisibility(View.INVISIBLE); 

只是讓你查看看不見,但通過視圖所佔用的空間將是他們本身

使用setVisibility(View.GONE);,這樣的尺寸來看將失效

利用這一點,讓我知道,如果它是樂於助人

+0

當我嘗試這個時,我被告知'setVisibility()'方法對於MainActivity類型是未定義的。雖然我似乎可以在其他視圖上調用此方法。 – Javacadabra

+1

好吧,剩下的一個選項就是使用列表對象,如list = getListView();然後嘗試使用該setVisiblity方法 –

+0

非常感謝你。 – Javacadabra

0

ListActivity是保持列表視圖如果u做this.setVissiblity(假)

; 它隱藏了列表視圖及其內容,所以你看到背景顏色的情況下它是黑色的。

好辦法是採取列表視圖中的XML,並獲得ID使這一觀點的vissible NAD invissible你的感受非常舒適與此apprch

http://www.vogella.com/articles/AndroidListView/article.html閱讀U將得到清晰的概念。並作出相應的變化