私のアプリケーションでは、ボタンをクリックすると、アラートダイアログボックスが表示され、ファイル名を取得し、ファイルのユーザーから名前を取得して保存します。しかし、何が起こっているのかというと、ボタンをクリックした後、アラートダイアログボックスが画面の前に表示され、その前にファイルを保存しようとします.しかし、ユーザーがファイルの名前を入力する前にファイルを保存しようとするため、ファイルの保存時にファイル名がnullになります。ユーザーから名前を取得し、その名前を使用してファイルを保存できるように、アラート ボックスを使用する方法を呼び出します。
public void savebitmap(Bitmap bitmap)
{
str++;
AlertDialog.Builder alert = new AlertDialog.Builder(Work.this);
alert.setMessage("File name :");
input = new EditText(Work.this);
input.setLayoutParams(new LayoutParams(100,50));
alert.setView(input);
alert.setNeutralButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
NameValue = input.getText().toString();
System.out.println(" file name.---"+NameValue);
}
});
alert.show();
System.out.println("file is..."+NameValue);
try
{
System.out.println("in bitmap save...");
File fn=new File("/sdcard/"+" filename4"+".png");
FileOutputStream out=new FileOutputStream(fn);
System.out.println(",,,,,,,,,,,,,,,"+out);
Toast.makeText(getApplicationContext(), "In Save",Toast.LENGTH_SHORT).show();
bitmap.compress(Bitmap.CompressFormat.JPEG, 90,out);
out.flush();
out.close();
Toast.makeText(getApplicationContext(), "File is Saved in "+fn, Toast.LENGTH_SHORT).show();
}
catch(Exception e){
e.printStackTrace();
}
}