0

问题是当我将参数从对话框发送到 mainActivity 时。

我通过以下方式发送参数:

mainActivity.SaveInfo(info);

它转到mainActivity。我的代码如下:

RateDialog.java 代码:

public class RateDialog extends DialogFragment {
    public String path;
    public float rate;
    public boolean i;
    PhotosRatingInfo photosRatingInfo;
    PhotosList photosList;

    public RateDialog(String path, float rate, PhotosList photosList) {
        this.path = path;
        this.rate = rate;
        this.photosList = photosList;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
        LayoutInflater inflater = getActivity().getLayoutInflater(); 
        View dialog = inflater.inflate(R.layout.dialog_rate, null);
        final RatingBar ratingBar = (RatingBar)dialog.findViewById(R.id.ratingBar);

        /** Dialog builder and settings **/ 
            builder.setView(dialog)
                    . 
            setTitle("Rate this photo") 
            . 
            setPositiveButton("Rate",new DialogInterface.OnClickListener() {
                @Override
                public void onClick (DialogInterface dialog,int id){
                    rate = ratingBar.getRating();
                    Logic.PhotosRatingInfo info = new Logic.PhotosRatingInfo();
                    MainActivity mainActivity = new MainActivity();
                    info.setRate(rate);
                    info.setPhotopath(path);

                    photosList.list.add(info);
                    ***mainActivity.SaveInfo(info);***
                }
            }

            )
                    .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();
                        }
                    }

                    );
            return builder.create();
        }
}

这是主要活动(如下),在这里它给了我错误“public java.io.FileOutputStream openFileOutput(java.lang.String name, int mode) throws java.io.FileNotFoundException” on:

FileOutputStream stream = openFileOutput(filename, Context.MODE_PRIVATE);`

MainActivity.java 的代码:

public class MainActivity extends Activity {
public void SaveInfo(Logic.PhotosRatingInfo info)
{
   save("PhotosData.txt", info)
}
private void save(String filename, Object data)  {
        try {
            FileOutputStream stream = openFileOutput(filename, Context.MODE_PRIVATE);
            ObjectOutputStream os = new ObjectOutputStream(stream);
            os.writeObject(data);
            //stream.write(filename.getBytes());
            os.close();
            stream.close();
        } catch(Exception e) {

        }
    }
}

我对java编程有点新,所以请保留我的(:谢谢帮助......

4

1 回答 1

0

您需要事先创建该文件的目录。

File file = new File("./path/to/file.txt");
if (!file.exists()) {
    file.mkdirs();
}
于 2013-10-24T19:38:37.547 回答