java - 如何从第二个位置删除一个线性布局子?
问题描述
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);
}
}
}
解决方案
您传递的布局错误可能是:
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
推荐阅读
- java - Spring OAuth2 从访问令牌字符串中提取主体
- excel - 用VBA提取趋势线斜率
- javascript - 如何将数据写入一个csv文件?
- spring-boot - 在 3.0.0 之前的 String Cloud Stream 中使用仲裁队列
- c++ - 为什么在使用无序集时,带有非常量运算符 () 的哈希函子无法在 Visual Studio 中编译?
- c# - MVVM - 使用 View1 上的按钮来利用来自 SubView1 的数据
- libssh - 使用 Libssh 在 Windows 和 Linux 上检测超时
- amazon-web-services - Kubernetes:集群运行但对更改无响应,无法检索日志
- python-3.x - 根据 Pandas 中的多列过滤并显示所有重复的行
- android - 如何在后台从服务中设置 AlarmClock 警报?