0

これは、最初にチェックされたファイルのみを削除する私のコードです。

チェックしたファイルをすべて削除したいのですが、どのような変更を行う必要がありますか?

CheckArr[i] のすべての値を収集するにはどうすればよいですか?

このコードは、グリッドで最初にチェックされたファイルのみを削除します。最初に true であるチェック済みの値をすべて収集してから、データベース呼び出しを行います。

boolean CheckArr[];
File[] currentFiles;

unhide.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {

        for (int i = 0; i < CheckArr.length; i++) {
            if (CheckArr[i] == true) {

                db = new DataBase(getBaseContext());
                try {
                    db.createDataBase();
                } catch (IOException e1) {

                    e1.printStackTrace();
                }


                Cursor DataC = db
                    .selectQuery("SELECT path FROM Photos where name ='" +
                    currentFiles[i].getName() + "'");



                if (DataC.getCount() > 0) {
                    Bitmap bitmap =
                        decodeFile.decodeFile(new File(root + "/" + currentFiles[i].getName()));

                    try {
                        FileOutputStream
                        outputStream = new FileOutputStream(
                            new File(DataC.getString(DataC
                            .getColumnIndex("path"))));

                        outputStream.write(decodeFile.getBitmapAsByteArray(bitmap));
                        outputStream.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }


                    File file = new File(root + "/" +
                        currentFiles[i].getName());
                    file.delete();

                    inflateListView(currentFiles);

                }

                DataC.close();
                db.close();
            }
        }           
4

1 に答える 1

0

最初のファイルだけでなく、すべてのファイルを削除するには、カーソル DataC のループを追加する必要があります。

if (DataC.getCount() > 0) {
    while (DataC.moveToNext()) {
//...
    }
}
于 2013-05-02T19:10:26.970 に答える