首页 > 解决方案 > 如何从第二个位置删除一个线性布局子?

问题描述

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.view.View.unFocus(android.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);
            }
        }
    }

标签: javaandroid

解决方案


您传递的布局错误可能是:

LinearLayout myFirstLinearLayout = findViewById(R.id.linLay);
deleteLinearLayoutChild(myFirstScrollView); //
deleteLinearLayoutChild(myFirstLinearLayout) // pass myFirstLinearLayout

这些也是您可以使用的方法;

myFirstLinearLayout .removeView(view)//remove particular view
myFirstLinearLayout.removeViewAt(position);//remove view from particular position

推荐阅读