Android Studio Error: The specified child already has a parent. You must call removeView () on the child's parent first

0

Java Class: public class ApuntesFragment extends Fragment {

private MenuItem v;

public ApuntesFragment() {
    //Constructor vacío requerido
}

//Creacion Variables botones y Editor del texto

Button nuevoButton, guardarButton, abrirButton;
EditText text;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    //Inflamos el Layout para este Fragmento
     View view = inflater.inflate(R.layout.fragment_apuntes, container, false);

    nuevoButton =(Button) view.findViewById(R.id.nuevoButton);
    guardarButton= (Button) view.findViewById(R.id.guardarButton);
    abrirButton= (Button) view.findViewById(R.id.abrirButton);
    text= (EditText) view.findViewById(R.id.text);

    final EditText fileName = new EditText(getActivity());
    final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setView(fileName);

    guardarButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

                builder.setMessage("Guardar Archivo");
                builder.setPositiveButton("Guardar", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int which) {
                        try {
                            FileOutputStream fout = getActivity().openFileOutput(fileName.getText().toString() + ".txt", MODE_WORLD_READABLE);
                            fout.write(text.getText().toString().getBytes());
                        } catch (Exception e) {
                            Toast.makeText(getActivity().getApplicationContext(), "Ha ocurrido un error:" + e, Toast.LENGTH_LONG).show();
                        }
                    }
                });
                builder.setNegativeButton("Cancelar", null);
                builder.create().show();


            }

    });

    abrirButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            builder.setMessage("Abrir Archivo");
            builder.setPositiveButton("Abrir", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int which) {
                    try {
                        FileOutputStream fout = getActivity().openFileOutput(fileName.getText().toString() + ".txt", MODE_WORLD_READABLE);
                        fout.write(text.getText().toString().getBytes());
                    } catch (Exception e) {
                        Toast.makeText(getActivity().getApplicationContext(), "Ha ocurrido un error:" + e, Toast.LENGTH_LONG).show();
                    }
                }
            });
            builder.setNegativeButton("Cancelar", null);

            builder.create().show();

        }

    });

    nuevoButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            text.setText("");

        }

    });

    return view;

}

}

XML:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="9"
    android:orientation="vertical">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:inputType="textMultiLine"
        android:gravity="center"
        android:id="@+id/text"
        android:scrollbars="vertical"/>
</LinearLayout>

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Nuevo"
    android:id="@+id/nuevoButton"
    android:layout_weight="1"/>

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="guardar"
    android:id="@+id/guardarButton"
    android:layout_weight="1"/>

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Abrir"
    android:id="@+id/abrirButton"
    android:layout_weight="1"/>

I get The following error when pressing one of the two buttons a second time:

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:3880)                       at android.view.ViewGroup.addView (ViewGroup.java:3733)                       at android.view.ViewGroup.addView (ViewGroup.java:3709)                       at android.support.v7.app.AlertController.setupCustomContent (AlertController.java:647)                       at android.support.v7.app.AlertController.setupView (AlertController.java:463)                       at android.support.v7.app.AlertController.installContent (AlertController.java:226)                       at android.support.v7.app.AlertDialog.onCreate (AlertDialog.java:257)                       at android.app.Dialog.dispatchOnCreate (Dialog.java:373)                       at android.app.Dialog.show (Dialog.java:274)                       at com.example.juancarlos.iler_notas.ApuntesFragment $ 1.onClick (ApuntesFragment.java:76)                       at android.view.View.performClick (View.java:4756)                       at android.view.View $ PerformClick.run (View.java:19749)                       at android.os.Handler.handleCallback (Handler.java:739)                       at android.os.Handler.dispatchMessage (Handler.java:95)                       at android.os.Looper.loop (Looper.java:135)                       at android.app.ActivityThread.main (ActivityThread.java:5221)                       at java.lang.reflect.Method.invoke (Native Method)                       at java.lang.reflect.Method.invoke (Method.java:372)                       at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:899)                       at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694) Application terminated.

    
asked by JCS 20.05.2017 в 19:24
source

0 answers