//Флаг TODO в VS .NET

Позвольте мне попытаться ответить на вопрос здесь с примером :) - MyImageSearch [Пожалуйста, посмотрите изображение здесь на главном экране активности - содержащее текст редактирования / кнопку поиска / вид сетки]

MyImageSearch

Описание MyImageSearch - Как только пользователь введет детали в поле для редактирования текста и нажмет на кнопку поиска, мы будем искать изображения на Интернет через веб-сервисы, предоставляемые flickr (вам нужно только зарегистрироваться там, чтобы получить ключ / секретный токен) - для поиска мы отправляем HTTP-запрос и ПОЛУЧАЕМ JSON-данные обратно в ответ, содержащие URL-адреса отдельных изображений, которые мы затем будем использовать загрузить вид сетки.

Моя реализация - В основном задании я определю внутренний класс, который расширяет AsyncTask для отправки HTTP-запроса в метод doInBackGround, извлечения ответа JSON и обновления моего локального ArrayList из FlickrItems, который Я собираюсь использовать для обновления моего GridView через FlickrAdapter (расширяет BaseAdapter) и вызывать adaptor.notifyDataSetChanged () в onPostExecute () AsyncTask для перезагрузки вида сетки. Обратите внимание, что здесь HTTP-запрос является блокирующим вызовом, из-за которого я сделал это через AsyncTask. И я могу кэшировать элементы в адаптере, чтобы увеличить производительность или сохранить их на SDCard. Сетка, которую я буду раздувать в FlickrAdapter, содержит в моей реализации индикатор выполнения и представление изображения. Ниже вы можете найти код для mainActivity, который я использовал.

Ответ на вопрос сейчас - Таким образом, когда у нас есть данные JSON для выборки отдельных изображений, мы можем реализовать логику получения изображений в фоновом режиме с помощью обработчиков или потоков или AsyncTask. Здесь следует отметить, что, поскольку мои загруженные изображения должны отображаться в пользовательском интерфейсе / главном потоке, мы не можем просто использовать потоки в том виде, как они есть, поскольку они не имеют доступа к контексту. В FlickrAdapter я мог придумать варианты:

  • Вариант 1: Создать LooperThread [расширяет поток] - и продолжать загружать изображения последовательно в одном потоке, сохраняя этот поток открытым [looper.loop ( )]
  • Вариант 2: Используйте пул потоков и опубликуйте исполняемый файл через myHandler, который содержит ссылку на мой ImageView, но поскольку представления в сеточном представлении перерабатываются, снова может возникнуть проблема, когда изображение с индексом 4 отображается в индексе 9 [загрузка может занять больше времени]
  • Вариант 3 [Я использовал это]: использовать пул потоков и отправить сообщение myHandler, который содержит данные, относящиеся к индексу ImageView и Сам ImageView, поэтому при выполнении handleMessage () мы будем обновлять ImageView только в том случае, если currentIndex соответствует индексу изображения, которое мы пытались загрузить.
  • Вариант 4: используйте AsyncTask для загрузки изображений в фоновом режиме, но здесь у меня не будет доступа к количеству потоков, которое я хочу в пуле потоков, и оно зависит от версии Android, но в Варианте 3 я могу сделать сознательного решения о размере пула потоков в зависимости от используемой конфигурации устройства.

Вот исходный код:

public class MainActivity extends ActionBarActivity {

    GridView imageGridView;
    ArrayList<FlickrItem> items = new ArrayList<FlickrItem>();
    FlickrAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageGridView = (GridView) findViewById(R.id.gridView1);
        adapter = new FlickrAdapter(this, items);
        imageGridView.setAdapter(adapter);
    }

    // To avoid a memory leak on configuration change making it a inner class
    class FlickrDownloader extends AsyncTask<Void, Void, Void> {



        @Override
        protected Void doInBackground(Void... params) {
            FlickrGetter getter = new FlickrGetter();

            ArrayList<FlickrItem> newItems = getter.fetchItems();

            // clear the existing array
            items.clear();

            // add the new items to the array
            items.addAll(newItems);

            // is this correct ? - Wrong rebuilding the list view and should not be done in background
            //adapter.notifyDataSetChanged();

            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);

            adapter.notifyDataSetChanged();
        }

    }

    public void search(View view) {
        // get the flickr data
        FlickrDownloader downloader = new FlickrDownloader();
        downloader.execute();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

Я надеюсь, что мой ответ, хотя долго, поможет в понимании некоторых из более мелких деталей.

6
задан yoozer8 28 February 2012 в 16:40
поделиться

7 ответов

Меню => Вид => Список задач
В поле со списком выберите «Комментарии»

14
ответ дан 8 December 2019 в 13:48
поделиться
//todo: whatever
//TODO: work on blah blah
//Todo new screenshot

Все работает (по крайней мере, в 2008 году и, вероятно, в предыдущих версиях).

3
ответ дан 8 December 2019 в 13:48
поделиться

В Visual Studio щелкните меню «Вид», затем «Список задач». Используйте раскрывающийся список в верхнем левом углу списка задач, чтобы просмотреть «Комментарии».

Дополнительная информация: HACK и UNDONE также являются ключевыми словами, которые отображаются в списке.

Чтобы добавить свои собственные ключевые слова, просмотрите Меню «Инструменты»> «Параметры», выберите узел «Среда», затем узел «Список задач».

1
ответ дан 8 December 2019 в 13:48
поделиться

Да, это тоже

//TODO: My task

Вы можете узнать, какие задачи вам нужно выполнить, просмотрев «Список задач»

0
ответ дан 8 December 2019 в 13:48
поделиться

TODO будет работать. Вот ссылка

0
ответ дан 8 December 2019 в 13:48
поделиться

Попробуйте следующее

  • Нажмите «Просмотр» -> «Другие окна» -> «Список задач» (иногда он находится прямо под «Просмотр»)
  • Переключите ComboBox на комментарии

Теперь будут отображаться все Комментарии TODO, найденные в вашей базе кода, которые появляются внутри комментариев.

0
ответ дан 8 December 2019 в 13:48
поделиться

Да. Прочтите этот пост :

Во время работы с файлом вы можете открыть окно списка задач ( CTRL + \ , CTRL + T ), откройте это раскрывающееся меню и выберите «Комментарии».

-1
ответ дан 8 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

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