Excel VBA & ldquo; Блокировать без конца if & rdquo; ошибка

Хорошо, я сделал это.

Вместо повторной проверки карты приложение выполняет итерацию через все плейлисты в медиастаре и проверяет длину поля _data. Я обнаружил, что для всех списков без связанного файла M3U это поле всегда было пустым. Тогда это был всего лишь случай поиска исходного кода для оригинального приложения для Android-андроида, поиска метода удаления и использования этого для удаления любых плейлистов с длиной 0. Я переименовал приложение PlaylistPurge (так как он не «повторно сканирует» ') и я отправляю код ниже.

Я, вероятно, также опубликую это где-нибудь на рынке или на моем собственном сайте, http://roryok.com

package com.roryok.PlaylistPurge;

import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.content.ContentUris;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;

public class PlaylistPurge extends ListActivity {

    private List list = new ArrayList();
    private final String [] STAR= {"*"};

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ListAdapter adapter = createAdapter();
        setListAdapter(adapter);
    }

    /**
     * Creates and returns a list adapter for the current list activity
     * @return
     */
    protected ListAdapter createAdapter()
    {
        // return play-lists
        Uri playlist_uri= MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;    
        Cursor cursor= managedQuery(playlist_uri, STAR, null,null,null);
        cursor.moveToFirst();
        for(int r= 0; r0){
                // keep any playlists with a valid data field, and let me know
                list.add("Keeping : " + cursor.getString(2) + " : id(" + i + ")");
            }else{
                // delete any play-lists with a data length of '0'
                Uri uri = ContentUris.withAppendedId(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, i);
                getContentResolver().delete(uri, null, null);
                list.add("Deleted : " + cursor.getString(2) + " : id(" + i + ")");
            }
        }       
        cursor.close();
        // publish list of retained / deleted playlists
        ListAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list);

        return adapter;
    }
}

UPDATE:

Вот ссылка на сообщение в моем блоге о приложении http://roryok.com/blog/index.php/2010/07/23/clearing-out-deleted- плейлисты-в-андроиде /

ОБНОВЛЕНИЕ 2: Вторник, 9 апреля 2013 г.

Я получил большой трафик в своем блоге с этого поста, и огромное количество писем от людей, поблагодаривших меня за это. Рад, что это помогло! Любые потенциальные пользователи должны знать, что мое дерьмовое приложение в настоящее время сбой, как только вы его запускаете, но фактически делает то, что он должен делать! Я всегда собирался вернуться и исправить это разрушительное поведение и поставить его на рынок, надеюсь, 2013 год станет годом, когда я это сделаю.

0
задан BigBen 18 March 2019 в 22:44
поделиться

1 ответ

Попробуйте:

Option Explicit

Sub test()

    Dim sheetsArray As Sheets

    Set sheetsArray = ThisWorkbook.Sheets(Array("Project", "Project 2", "Project 3", "Project 4"))

    Application.ScreenUpdating = False

        If ShowHide1.Name = "Show All Projects" Then

            For Each Sheet In sheetsArray
                Sheet.Visible = xlSheetVisible
            Next Sheet

            ShowHide1.Name = "Hide All Projects"

            Sheet1.Activate
        Else

            For Each Sheet In sheetsArray
                If (Sheet.Name <> ShowHide1.Name And Sheet.Name <> AlwaysShow.Name) Then
                   Sheet.Visible = xlSheetVeryHidden
                End If
            Next Sheet

            ShowHide1.Name = "Show All Projects"

        End If

        Set sheetsArray = ThisWorkbook.Sheets(Array("Jagger1", "Jagger2", "Jagger3", "Jagger4"))

        If ShowHide1.Name = "Show All Jagger" Then

            For Each Sheet In sheetsArray
                Sheet.Visible = xlSheetVisible
            Next Sheet

            ShowHide1.Name = "Hide Jagger"

            Sheet1.Activate
        Else

            For Each Sheet In sheetsArray
                If (Sheet.Name <> ShowHide1.Name And Sheet.Name <> AlwaysShow.Name) Then
                   Sheet.Visible = xlSheetVeryHidden
                End If
            Next Sheet

            ShowHide1.Name = "Show all Jagger"

            AlwaysShow.Activate

        End If

    Application.ScreenUpdating = True

End Sub
0
ответ дан Error 1004 18 March 2019 в 22:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: