У меня ошибка с моим проектом студии Android.
Я пытаюсь сохранить файл, для этого я получаю текст различных правок и записываю их в текстовый файл во внешнем хранилище.
Ошибка здесь заключается в том, что в файле есть только пустые строковые символы (""), это происходит потому, что имеющиеся у меня строковые переменные пусты, они принимают значение текста редактирования, но они все еще пусты.
Я делаю это внутри класса My AppCompatDialogFragment
Вот мой код:
private ImageButton CloseB;
private ImageButton SaveB;
private EditText EditTitle;
private EditText EditDesc;
private Spinner TagSpinner;
private EditText EditDate;
private EditText EditHour;
private String Hour;
private String FileName;
private String Title;
private String STag;
private String Description;
private String Date;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
AlertDialog Dialog = builder.create();
LayoutInflater Inflater = getActivity().getLayoutInflater();
View view = Inflater.inflate(R.layout.newtaskdialog, null);
builder.setView(view);
CloseB = view.findViewById(R.id.NewTCloseB);
SaveB = view.findViewById(R.id.SaveBN);
CloseB.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
dismiss();
}
});
SaveB.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
Title = EditTitle.getText().toString();
Date = EditDate.getText().toString();
Hour = EditHour.getText().toString();
Description = EditDesc.getText().toString();
SaveFile();
//dismiss();
}
});
return builder.create();
}
public void SaveFile()
{
String State = getExternalStorageState();
String LTitle = Title.toLowerCase();
String FileName = Title + ".ard";
byte Tag = GetTag();
int ITag = Tag;
String STag = String.valueOf(ITag);
if (Environment.MEDIA_MOUNTED.equals(State))
{
File Root = Environment.getExternalStorageDirectory();
File Dir = new File(Root.getAbsolutePath() + "/AcardiaFiles"); //<-- Need to check in which folder is making the task
if (!Dir.exists())
{
Dir.mkdir();
}
File file = new File(Dir, FileName);
String Message = "false" + "\n" + Title + "\n" + Date + "\n" + Hour + "\n" + STag + "\n" + Description;
try {
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(Message.getBytes());
fileOutputStream.close();
Toast.makeText(getContext(), "File Saved." + Title, Toast.LENGTH_SHORT).show();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
else
{
}
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Dialog d = getDialog();
View v = inflater.inflate(R.layout.newtaskdialog, container, false);
EditTitle = v.findViewById(R.id.editNTitle);
EditDate = v.findViewById(R.id.editNDate);
EditDesc = v.findViewById(R.id.editNDesc);
EditHour = v.findViewById(R.id.editNHour);
TAdapter = new TagAdapter(getContext(), tagList);
TagSpinner = v.findViewById(R.id.TagNSpinner);
EditDate.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
final Calendar C = Calendar.getInstance();
}
});
return super.onCreateView(inflater, container, savedInstanceState);
}