Android: Простой GridView, который отображает текст в сетках

Прежде всего, ваш блок и все переменные, которые вы используете в нем, будут скопированы в GCD, поэтому код будет выполняться не в вашем потоке, а в глобальной очереди.

Если вы хотите вернуть свои данные в основной поток, вы можете вложить асинхронный вызов после извлечения данных:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"www.stackoverflow.com"]];
    NSURLResponse *response;
    NSError *error;
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    if (error) {
        // handle error
        return;
    }
    dispatch_async(dispatch_get_main_queue(), ^{
        // do something with the data
    });
});

Но почему бы не использовать встроенную асинхронную поддержку NSURLConnection? Вам нужен NSOperationQueue, но если вы делаете много сетевых извлечений, то это все равно путь:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"www.stackoverflow.com"]];
[NSURLConnection sendAsynchronousRequest:request
                                   queue:self.queue // created at class init
                       completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
                           // do something with data or handle error
                       }];

Лично я использую библиотеку, такую ​​как AFNetworking или ASIHTTPRequest, чтобы сделать работу в сети еще проще, и обе поддерживают блоки (первый использует GCD и немного более современен).

6
задан Kara 13 June 2014 в 16:59
поделиться

2 ответа

Я не уверен, что могло быть причиной вашей проблемы. Я выполнил пошаговые инструкции на странице, на которую вы указали ссылку для настройки «Hello, GridView», использовал ваш код и смог увидеть текст.

Единственное, что я изменил, - это не создание класса для ImageAdapter Я использовал ваш MyAdapter. В действии HelloGridView.java onCreate я использовал «MyAdapter», а не «ImageAdapter». Я вообще не менял макет.

alt text

Вот скриншот того, что я получаю при запуске вашего кода.

9
ответ дан 10 December 2019 в 02:52
поделиться

Я вижу GridView, поэтому я почти предполагаю, что это похоже на SWT?

Если да, вам нужно показать взаимосвязь между вашим представлением и родительским элементом ViewGroup

0
ответ дан 10 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

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