1

我想在用户单击按钮时显示我的列表视图,并在单击按钮时再次隐藏它。这是相关按钮的 onClick 侦听器:

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();
            }
        }
    });

这是 showUI() 方法:

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。

4

2 回答 2

3
setVisibility(View.INVISIBLE);

只是让你看不见,但视图所占据的空间将是它们本身

使用setVisibility(View.GONE);,以便视图的大小将失效

使用它并让我知道它是否有帮助

于 2013-01-15T11:07:35.663 回答
0

ListActivity 是保持列表视图

如果你这样做。setVissiblity(false); 它隐藏了列表视图及其内容,所以在你的情况下你会看到背景颜色是黑色的。

好的方法是在 xml 中获取 Listview 并获取 id 使该视图可见和不可见 你对这个 apprch 感到非常舒服

http://www.vogella.com/articles/AndroidListView/article.html阅读这篇文章你会明白的。并做出相应的改变

于 2013-01-15T11:19:11.130 回答