java - 如何从第二个位置删除线性布局子项?

标签 java android

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.unFocus(android.view.View)' on a null object reference.

我想从线性布局中删除所有 View 除了前两个 View 我要删除的 View 是动态创建的。 这是我尝试过的:

<小时/>

//编辑,我用错误的布局调用了它,但仍然不起作用

LinearLayout myFirstLinearLayout = findViewById(R.id.linLay);
deleteLinearLayoutChild(myFirstLinearLayout);
<小时/>

这是函数:

private void deleteLinearLayoutChild(LinearLayout linearView){
        int childNumber = linearView.getChildCount();
        Log.d("childNumb", childNumber+"");
        if (childNumber > 2){
            for (int i=2;i<childNumber;i++){
                linearView.removeViewAt(i);
            }
        }
    }

最佳答案

您应该以相反的顺序从布局中删除 View 。检查以下内容:

for (int i = childNumber - 1; i > 1; i--){
    linearView.removeViewAt(i);
}

如果您使用 while 循环,则必须在每次迭代中调用 getChildCount

关于java - 如何从第二个位置删除线性布局子项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59599256/

相关文章:

java - 如何使java应用程序作为在特定时间自动打开的服务运行

android - 如何将 flutter 应用程序发送给客户端进行测试

Android Account Authenticator 编辑 Email Id Credentials

android - 触发心率检查的语音命令列表

java - 如何使用 spring mvc 处理任意 json 对象?

java - 什么是更好的: detecting device using its size or user agent string?

java - 多次滚动时出现 OutOfMemoryException

java - 如何让 Maven Surefire 运行所有类和测试?

java - 如何在recyclerView中为textview(非常非常长的文本)自动水平滚动设置动画

android - 将新项目添加到 ListView 的开头,并保持滚动位置