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.