Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 第二次使用字符串元素数组填充微调器时出错_Java_Android_Android Spinner - Fatal编程技术网

Java 第二次使用字符串元素数组填充微调器时出错

Java 第二次使用字符串元素数组填充微调器时出错,java,android,android-spinner,Java,Android,Android Spinner,我有一个微调器,允许我选择一个特定的文本。我正在以编程方式创建第二个微调器,并根据从第一个微调器中选择内容时激活的开关中所做的选择,在其中放置不同的字符串元素数组。第二个微调器位于线性布局内。当我第一次从第一个微调器中选择一个选项时,一切正常;当我选择另一个选项时,一切崩溃。你能帮我找出是什么导致了这一切吗 final String[] as = {"AB", "AC", "AD", "AE", "AF", "AG","AH"}; final String[] bs = {"BC

我有一个微调器,允许我选择一个特定的文本。我正在以编程方式创建第二个微调器,并根据从第一个微调器中选择内容时激活的开关中所做的选择,在其中放置不同的字符串元素数组。第二个微调器位于线性布局内。当我第一次从第一个微调器中选择一个选项时,一切正常;当我选择另一个选项时,一切崩溃。你能帮我找出是什么导致了这一切吗

    final String[] as = {"AB", "AC", "AD", "AE", "AF", "AG","AH"};
    final String[] bs = {"BC", "BD", "BE", "BF", "BG", "BH", "BI"};
在onCreate方法内部

    //second Spinner
    second_layout = findViewById(R.id.second_spinner);
    spinner_2 = new Spinner(this);
开关

    @Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    String comb_selected = String.valueOf(spinner_1.getSelectedItem());

    switch (comb_selected){
        case "As"                
            second_layout.setVisibility(View.VISIBLE);
            fillSecondSpinner(as);
            break;
        case "Bs":                
            second_layout.setVisibility(View.VISIBLE);
            fillSecondSpinner(bs);
            break;
        default:
            flag.setVisibility(View.INVISIBLE);
            second_layout.setVisibility(View.INVISIBLE);
            break;

嗯,在创建新视图之前,需要先删除旧视图。 尝试在添加之前调用此方法:

second_layout.removeAllViews()

添加StackTrace我已经添加了我在这一行之前发现的错误(second_layout.addView(spinner_2)),效果很好。
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.exercice1.spinner2, PID: 2304
    java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
        at android.view.ViewGroup.addViewInner(ViewGroup.java:4417)
        at android.view.ViewGroup.addView(ViewGroup.java:4258)
        at android.view.ViewGroup.addView(ViewGroup.java:4198)
        at android.view.ViewGroup.addView(ViewGroup.java:4171)
        at com.exercice1.spinner2.MainActivity.fillSecondSpinner(MainActivity.java:49)
        at com.exercice1.spinner2.MainActivity.onItemSelected(MainActivity.java:68)
        at android.widget.AdapterView.fireOnSelected(AdapterView.java:931)
        at android.widget.AdapterView.dispatchOnItemSelected(AdapterView.java:920)
        at android.widget.AdapterView.-wrap1(AdapterView.java)
        at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:890)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Application terminated.
second_layout.removeAllViews()