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 を取得して、そのビューを表示または非表示にすることです。このアプリで非常に快適に感じます。

http://www.vogella.com/articles/AndroidListView/article.htmlこれを読むと、明確なアイデアが得られます。それに応じて変更を加えます

于 2013-01-15T11:19:11.130 に答える