【问题标题】:How to fix addView/removeView from crashing app如何从崩溃的应用程序中修复 addView/removeView
【发布时间】:2019-04-06 19:38:36
【问题描述】:

我正在使用 switch 方法来确定是否根据我的微调器的选定值在我的视图中显示元素。我可以毫无问题地删除视图,但是当我在微调器中更改我的选择时,我无法在应用程序崩溃时重新添加视图。

我尝试默认删除所有视图,然后根据需要将其添加到每个 switch 案例中,但是当我添加新视图时应用程序崩溃。我尝试在每种情况下添加和删除视图而不使用默认值,但是当我将视图添加到列表时仍然会崩溃。

LinearLayout 的 id 为 reps_layout

switch (a){

case "one":                       
myLayout.removeView(rowView.findViewById(R.id.reps_layout));
break;

case "two":
myLayout.addView(rowView.findViewById(R.id.reps_layout));
break;

default:
//myLayout.removeView(rowView.findViewById(R.id.reps_layout));
}

当我选择案例“一”时,预期结果应该有列表,但删除了 sets_field。然后,当我选择案例“二”时,我想将 reps_layout 添加回列表中。

【问题讨论】:

    标签: java android listview


    【解决方案1】:

    您像这样添加您的 LinearLayout。在任何情况下,您都需要一个父布局。

    switch (a){
    
    case "one":                       
    myLayout.removeView(rowView.findViewById(R.id.reps_layout));
    break;
    
    case "two":
    LinearLayout layout =new LinearLayout(this);
        layout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    myLayout.addView(layout));
    break;
    
    default:
    //myLayout.removeView(rowView.findViewById(R.id.reps_layout));
    }

    我不了解您的项目,但请考虑将视图的可见性设置为 GONE 而不是隐藏它可能更有意义。

    【讨论】:

      猜你喜欢
      • 2014-03-15
      • 2021-12-21
      • 2021-02-10
      • 2019-03-11
      • 2013-03-03
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多