2013-01-15 170 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将得到清晰的概念。并作出相应的变化