Toast и Intent, оба требуют ссылки на контекст . И getApplication, getApplicationContext, LoginActivity.this и getBaseContext, все они предлагают ссылку на контекст.
Теперь это смущает декларация разных контекстов и их специфическое использование.
Контекст активности привязан к жизненному циклу Деятельности и может быть уничтожен, если возникает onDestroy()
активности. Если вы хотите запустить новое действие, вам нужно будет использовать контекст активности в своем Intent , чтобы новая активность запуска была связана с текущей деятельностью (с точки зрения стека активности). Однако вы также можете использовать контекст приложения для запуска нового действия, но тогда вам нужно установить флаг Intent.FLAG_ACTIVITY_NEW_TASK
в намерении рассматривать его как новую задачу.
Теперь, ссылаясь на ваши случаи:
LoginActivity.this
, хотя его ссылка на ваш собственный класс, который расширяет класс Activity, но базовый класс (Activity) также расширяет класс Context, поэтому его можно использовать для контекста активности.
getApplication()
, хотя его ссылка на объект Application, но класс Application расширяет класс Context, поэтому его можно использовать для предоставления контекста приложения.
getApplicationContext()
предлагает контекст приложения.
getBaseContext()
предлагает контекст активности.
Советы: всякий раз, когда вам нужно манипулировать
blockquote>Views
, перейдите в Activity-Context, иначе Application-Context будет достаточно.
Я использую nXML режим для редактирования и Опрятный , когда я хочу отформатировать и расположить с отступом XML или HTML. Существует также интерфейс Emacs для Уборки.
Вы не должны даже писать свою собственную функцию - sgml-режим (гну emacs базовый модуль) имеет встроенную симпатичную вызванную функцию печати (sgml-структурная-распечатка-программы...), который занимает начало региона и аргументы конца.
, Если Вы вырезаете и вставляете xml и Вы находите, что Ваш терминал прерывает строки в произвольных местах, можно использовать этот симпатичный принтер , который фиксирует прерывистые линии сначала.
Если Вам только нужно симпатичное расположение с отступом, не представляя новых разрывов строки, можно подать заявку эти indent-region
команда ко всему буферу с этими нажатиями клавиш:
C-x h
C-M-\
, Если также необходимо представить разрывы строки, так, чтобы открывающие и закрывающие тэги были на отдельных строках, Вы могли использовать следующую очень хорошую функцию elisp, записанную Benjamin Ferrari . Я нашел его на его блоге, и надеются, что для меня нормально воспроизводить его здесь:
(defun bf-pretty-print-xml-region (begin end)
"Pretty format XML markup in region. You need to have nxml-mode
http://www.emacswiki.org/cgi-bin/wiki/NxmlMode installed to do
this. The function inserts linebreaks to separate tags that have
nothing but whitespace between them. It then indents the markup
by using nxml's indentation rules."
(interactive "r")
(save-excursion
(nxml-mode)
(goto-char begin)
(while (search-forward-regexp "\>[ \\t]*\<" nil t)
(backward-char) (insert "\n"))
(indent-region begin end))
(message "Ah, much better!"))
Это не полагается на внешний инструмент как Опрятный.
HTH
Опрятный похож на хороший режим. Должен посмотреть на него. Будет использовать его, если мне действительно будут нужны все функции, это предлагает.
Так или иначе, эта проблема ворчала меня приблизительно в течение недели, и я не искал правильно. После регистрации я начал искать и нашел один сайт с функция elisp , который делает это довольно хороший. Автор также предлагает использовать Опрятный.
спасибо за ответ Marcel <забастовка> (слишком плохо у меня нет достаточного количества точек к upmod Вами) забастовка>.
<забастовка> скоро отправит об этом на моем блоге. Вот сообщение об этом (со ссылкой на сайт Marcel).
Боюсь, мне гораздо больше нравится версия Бенджамина Феррари. Внутренний красивый вывод всегда помещает конечный тег в новую строку после значения, вставляя нежелательный CR в значения тегов.
Emacs может запускать произвольные команды с M- |. Если у вас установлен XMLLINT:
«M- | XMLLINT --Format -» отформатирует выбранную область
«Cu M- | XMLLINT - Format -» сделает то же самое, заменив область выходом