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

几个想法:

Activity 2 可以有条件地加载不同的布局。或者,您可以使用 View.setVisibility(View.GONE); 从布局中隐藏视图(或 ViewGroup)。

因此,例如,如果您有一堆堆叠的相对布局(layout1、layout2、layout3),如果您执行 layout2.setVisibility(View.GONE),则布局将像不存在一样绘制。

于 2012-08-23T20:19:32.913 回答