从列表活动中删除ContentView

如何解决从列表活动中删除ContentView

| 我有一个简单的清单活动,该清单活动显示了某个目录下的所有文件。当我至少选中一个时,我希望按钮显示底部的列表上方,我不希望它成为列表的一部分,因为那样一来,您必须一直滚动到底部才能看到按钮。我有显示的按钮,这很好,但是我有问题。添加按钮后,无法将其删除。我希望在未检查任何文件时将其删除。这是我的代码
    if(size == 1) {
                Log.d(\"LIST\",\"Showing button!\");

                Button button = new Button(selectFile.getApplicationContext());
                button.setId(556);
                button.setText(\"Click me to \" + (shred_MODE ? \"shred!\" : \"Encrypt/Delete!\"));
                   LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
                   params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
                 selectFile.addContentView(button,params);
            } else if (size == 0) {
                Log.d(\"LIST\",\"Removing Button!\");
                View view = selectFile.findViewById(556);
                if(view == null) {
                    Log.d(\"List\",\"VIEW IS NULL\");
                    return;
                }
                selectFile.getListView().removeView(view);
            }
我没有看到类似removeContentView的东西,当我使用removeView时,出现此异常
06-12 13:38:33.371: ERROR/AndroidRuntime(13203): java.lang.UnsupportedOperationException: removeView(View) is not supported in AdapterView
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at android.widget.AdapterView.removeView(AdapterView.java:489)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at austin.paid.productions.SelectFile$EfficientAdapter$1.onCheckedChanged(SelectFile.java:134)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at android.widget.CompoundButton.setChecked(CompoundButton.java:124)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at android.widget.CompoundButton.toggle(CompoundButton.java:86)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at android.widget.CompoundButton.performClick(CompoundButton.java:98)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at android.view.View$PerformClick.run(View.java:8816)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at android.os.Handler.handleCallback(Handler.java:587)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at android.os.Looper.loop(Looper.java:123)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at android.app.ActivityThread.main(ActivityThread.java:4627)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at java.lang.reflect.Method.invokeNative(Native Method)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at java.lang.reflect.Method.invoke(Method.java:521)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
06-12 13:38:33.371: ERROR/AndroidRuntime(13203):     at dalvik.system.NativeStart.main(Native Method)
有任何想法吗?     

解决方法

        您不仅试图通过
removeView()
AdapterView
中删除某些内容(如堆栈跟踪所示,不允许这样做),而且不是您要删除
View
的地方。 您通过以下方式添加了“ 4”:
selectFile.addContentView(button,params);
我假设
selectFile
Activity
实例,因为这是对
addContentView()
做出反应的最有可能的候选者。
Activity
不是
ListView
selectFile
不是
selectFile.getListView()
。您无法通过尝试从非
selectFile
的东西中删除添加到
selectFile
的孩子。 而且,AFAICT仍然无法删除通过
addContentView()
添加的内容。 因此,请遵循@MisterSquonk的建议,并在布局底部仅显示一个固定按钮。 另外,除非特别需要
Application
对象,否则请勿调用
getApplicationContext()
。您在这里不需要
Application
对象。实际上,对于GUI工作,您几乎不需要
Application
对象。请只将
Activity
传递给
Button
构造函数。     ,        正如其他人指出的那样,有更好的方法来满足您的特定需求。但是,为了完整起见,有一种方法可以做您想要的。 如果使用以下方法将视图(按钮)添加到活动(selectFile):
selectFile.addContentView(button,params);
...您可以这样删除它:
ViewGroup parent = (ViewGroup) button.getParent();
parent.removeView(button);
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?