2013-03-04 48 views
0

在我的应用程序中单击按钮我显示警报dailog框来获取文件name.and从用户获取文件的名称并保存它。 但发生了什么事情是,点击按钮后,警报dailog框获取屏幕前,之前它尝试保存文件。但它试图保存文件befor用户输入文件的名称这就是为什么文件名为空,保存文件。如何调用使用警报框,以便我可以从用户获取名称,然后使用该名称保存该文件.plase帮助我。AlertDailogBox在android中,保存文件

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();   
    } 
} 

回答

1

你会移动按钮的onClick事件中的所有文件保存代码或包裹的方法内的所有代码,然后调用它的按钮点击为:

public void savebitmap(Bitmap bitmap){ 
     //....your code here 
     alert.setNeutralButton("Ok", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 
        NameValue = input.getText().toString(); 
        System.out.println(" file name.---"+NameValue); 

        // put your code here to save file on Ok button click 
        saveFileOnSdCard(NameValue); 
       } 

      }); 
      alert.show(); 
    } 

    private void saveFileOnSdCard(String str_filename){ 
     // move yor file saving code here.. 
    } 
1

您需要先输入然后当用户按下确定,你需要创建文件。所以你需要编写代码onClick

试试这个,

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); 
      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(); 

      } 
      catch(Exception e){ 
       e.printStackTrace();   
      } 
     } 

    }); 
    alert.show(); 
    System.out.println("file is..."+NameValue); 


}