0

現在、4つのチェックボックスがあり、クリックされていないかどうかを確認する必要があります。その場合は、次のアクティビティのレイアウトを変更する必要があります。現在、アクティビティ1のチェックボックスがあります。アクティビティ2は、アクティビティ1から文字列変数を取得し、それをintに解析して、ゼロまたは1が渡されたかどうかを確認します。アクティビティ2には、そのアクティビティに何かを追加するボタンがあります。ポップアップウィンドウが表示されます。

public void newUserInput(View view){
        LayoutInflater inflater = (LayoutInflater)
                Launch.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        PopupWindow pw = new PopupWindow(inflater.inflate(R.layout.popup_layout,null,false),300,400,true);

        pw.showAtLocation(findViewById(R.id.button1), Gravity.CENTER, 0, 0);

つまり...ポップアップするポップアップウィンドウは、アクティビティ1でクリック/クリック解除されたものの影響を受ける必要があるものです。私の考えは、ゼロかどうかを確認し、ゼロかどうかを確認して、そのエントリのテキストとテキストボックスを非表示にすることでした。私はそれができるかどうかよくわかりませんか?また、私のポップアップウィンドウは絶対的なものです。これを非表示にすると、他のウィンドウが押し上げられて見栄えが悪くなることはありません。

4

2 に答える 2

3

オプションに基づいて、レイアウト内のアイテムを確実に非表示にすることができます。オプションを保持する変数が何と呼ばれるかはわかりませんが、次のようなことができます。

public void newUserInput(View view) {
    LayoutInflater inflater = (LayoutInflater)
        Launch.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View inflatedView = inflater.inflate(R.layout.popup_layout,null,false);

    if (myOption == 0) {
        TextView tv = (TextView) inflatedView.findViewById(R.id.my_text_view);
        tv.setVisibility(TextView.INVISIBLE);
    }

    PopupWindow pw = new PopupWindow(inflatedView,300,400,true);

    pw.showAtLocation(findViewById(R.id.button1), Gravity.CENTER, 0, 0);
}

TextView.INVISIBLEはTextViewを非表示にするだけであることに注意することが重要です...レイアウトからは削除されないため、スタイルは表示されている場合と同じように見えるはずです。レイアウトからTextViewを完全に削除したい場合は、TextView.GONEを使用できます。

于 2012-08-23T21:26:44.133 に答える
0

いくつかのアイデア:

アクティビティ2は、条件付きでさまざまなレイアウトをロードできます。または、View.setVisibility(View.GONE);を使用できます。ビュー(またはViewGroup)をレイアウトから非表示にします。

したがって、たとえば、積み重ねられた多数のRelativeLayouts(layout1、layout2、layout3)がある場合、layout2.setVisibility(View.GONE)を実行すると、レイアウトは存在しないかのように描画されます。

于 2012-08-23T20:19:32.913 に答える