Java (Android) : Ive created a bunch of views using a loop, 并希望删除其中之一

标签 java android

您好,我已经设置(充分膨胀)了一堆按钮,它们是从包含按钮、 TextView 等的相对布局构建的。我希望能够删除/隐藏/消失整个按钮集。我假设我可以在 RelativeLayout 上执行 setVisibility(View.GONE) 但我不确定如何引用此布局。我已经为它设置了一个 ID,但在尝试引用它时我真的迷路了。启动此代码的按钮是一个删除按钮,因此 OnClick(View v) 包含删除按钮的 ID。我刚刚尝试了 getparent,但效果不是很好(崩溃)。

谁能指出我正确的方向?

这里是我试过的 getparent 代码。

            RelativeLayout dropping = (RelativeLayout) ((Activity) v.getParent()).findViewById(R.id.tp_container);
            dropping.setVisibility(View.GONE);

我希望有这样的东西,如果可能的话,id 可以用另一个变量来表达?

relativeViewVariable.id(actualId).setVisibility(View.GONE);

这很尴尬,但我不知道这是 Java 还是 Android 问题?

干杯

最佳答案

如果您动态创建 View ,那么您必须设置自定义 ID,然后从它的父 View 中获取具有该 ID 的 View !

View textView;
RelativeLayout layout = new RelativeLayout (this);
setContentView(layout);

for(int i=0;i<10;i++){
        textView = new TextView(this);
        textView.setId(i);
        layout.addView(textView);
}

/* FOR LOOP THAT ONE */
TextView referencedTextView = (TextView) layout.findViewById(5);
referencedTextView.setVisibility(View.GONE);

如果您只想隐藏布局中的所有按钮,您可以遍历所有父 View 。

LinearLayout layout;
        View view;
        for (int i = 0; i < layout.getChildCount(); i++) {
            if(layout.getChildAt(i) instanceof Button){
                ((Button)layout.getChildAt(i)).setVisibility(View.GONE);
            }

        }

关于Java (Android) : Ive created a bunch of views using a loop, 并希望删除其中之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10009632/

相关文章:

java - 了解如何访问 geb.Page 上的内容对象

android - android中如何实现跨进程锁?

android - AsyncTask Android

java - android:如何实现闪屏

Android SQLite核心功能

android - 构建我的项目时无法合并 dex 错误

java - 如何从数据库服务器插入带有时间戳的 MongoDB 文档

java - 如何使用 Xtend Activity 注释将 String 类型的参数添加到生成的 java setter?

java - 在作业中进行大量选择后,Spring batch 内存不足

Java利用二叉堆错误实现优先级队列