<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF151%3AAndroid%3A_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5</id>
		<title>LXF151:Android: Музыка на марше - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF151%3AAndroid%3A_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;action=history"/>
		<updated>2026-05-13T12:10:58Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;diff=16050&amp;oldid=prev</id>
		<title>Ssr в 07:30, 7 февраля 2018</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;diff=16050&amp;oldid=prev"/>
				<updated>2018-02-07T07:30:33Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 07:30, 7 февраля 2018&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt; Android: Музыка на марше&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt; Android Хорошо документированный API позволяет проигрывать файлы MP3&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка|Ширина=30%|Заголовок=Наш эксперт|Содержание=У Джульетты Кемп гораздо больше MP3-файлов, чем она не поленилась загрузить в эмулятор Android.}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка|Ширина=30%|Заголовок=Наш эксперт|Содержание=У Джульетты Кемп гораздо больше MP3-файлов, чем она не поленилась загрузить в эмулятор Android.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''''&lt;/ins&gt;Часть 1:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''' &lt;/ins&gt;В первой из двух статей цикла '''Джульетта Кемп''' обращает свой взгляд на MediaPlayer и создает и запускает простой MP3-плейер.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'' &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;:Часть 1: В первой из двух статей цикла '''Джульетта Кемп''' обращает свой взгляд на MediaPlayer и создает и запускает простой MP3-плейер. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Если вы программист, то, безусловно, оцените одну из лучших возможностей Android – удобный, хорошо задокументированный обширный API: огромное количество классов и интерфейсов, которыми можно воспользоваться с минимумом усилий. И если у вас нет веской причины этого не делать, лучше обойтись им, чем разворачивать собственные классы, отчасти ради экономии времени и усилий, а отчасти потому, что классы и интерфейсы API стабильно работают с устройствами Android.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Если вы программист, то, безусловно, оцените одну из лучших возможностей Android – удобный, хорошо задокументированный обширный API: огромное количество классов и интерфейсов, которыми можно воспользоваться с минимумом усилий. И если у вас нет веской причины этого не делать, лучше обойтись им, чем разворачивать собственные классы, отчасти ради экономии времени и усилий, а отчасти потому, что классы и интерфейсы API стабильно работают с устройствами Android.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ssr</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;diff=16048&amp;oldid=prev</id>
		<title>Ssr: Ssr переименовал страницу LXF151:tut7 в LXF151:Android: Музыка на марше</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;diff=16048&amp;oldid=prev"/>
				<updated>2018-02-07T07:29:49Z</updated>
		
		<summary type="html">&lt;p&gt;Ssr переименовал страницу &lt;a href=&quot;/wiki/LXF151:tut7&quot; class=&quot;mw-redirect&quot; title=&quot;LXF151:tut7&quot;&gt;LXF151:tut7&lt;/a&gt; в &lt;a href=&quot;/wiki/LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&quot; title=&quot;LXF151:Android: Музыка на марше&quot;&gt;LXF151:Android: Музыка на марше&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Версия 07:29, 7 февраля 2018&lt;/td&gt;
			&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Ssr</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;diff=15869&amp;oldid=prev</id>
		<title>Ssr в 04:30, 27 января 2018</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;diff=15869&amp;oldid=prev"/>
				<updated>2018-01-27T04:30:18Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;amp;diff=15869&amp;amp;oldid=15868&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Ssr</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;diff=15868&amp;oldid=prev</id>
		<title>Ssr в 04:19, 27 января 2018</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;diff=15868&amp;oldid=prev"/>
				<updated>2018-01-27T04:19:24Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 04:19, 27 января 2018&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;# &lt;/del&gt;Android: Музыка на марше&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;Android: Музыка на марше&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Android Хорошо документированный API позволяет проигрывать файлы MP3&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;Android Хорошо документированный API позволяет проигрывать файлы MP3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;blockquote&amp;gt;&lt;/del&gt;Наш эксперт&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;/del&gt;У Джульетты Кемп гораздо больше MP3-файлов, чем она не поленилась загрузить в эмулятор Android.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/blockquote&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{Врезка|Ширина=30%|Заголовок=&lt;/ins&gt;Наш эксперт&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|Содержание=&lt;/ins&gt;У Джульетты Кемп гораздо больше MP3-файлов, чем она не поленилась загрузить в эмулятор Android.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;:Часть 1: В первой из двух статей цикла '''Джульетта Кемп''' обращает свой взгляд на MediaPlayer и создает и запускает простой MP3-плейер. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;=== Часть 1: В первой из двух статей цикла Джульетта Кемп обращает свой взгляд на MediaPlayer и создает и запускает простой MP3-плейер. ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Если вы программист, то, безусловно, оцените одну из лучших возможностей Android – удобный, хорошо задокументированный обширный API: огромное количество классов и интерфейсов, которыми можно воспользоваться с минимумом усилий. И если у вас нет веской причины этого не делать, лучше обойтись им, чем разворачивать собственные классы, отчасти ради экономии времени и усилий, а отчасти потому, что классы и интерфейсы API стабильно работают с устройствами Android.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Если вы программист, то, безусловно, оцените одну из лучших возможностей Android – удобный, хорошо задокументированный обширный API: огромное количество классов и интерфейсов, которыми можно воспользоваться с минимумом усилий. И если у вас нет веской причины этого не делать, лучше обойтись им, чем разворачивать собственные классы, отчасти ради экономии времени и усилий, а отчасти потому, что классы и интерфейсы API стабильно работают с устройствами Android.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 12:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;blockquote&amp;gt;Скорая помощь&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;Помните, что пример кода на DVD не компилируется «как есть»; нужно создать его либо как мы объяснили, либо с помощью ''Eclipse'', чтобы компилятор знал, где найти локальную установку SDK.&amp;lt;/blockquote&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;blockquote&amp;gt;Скорая помощь&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;Помните, что пример кода на DVD не компилируется «как есть»; нужно создать его либо как мы объяснили, либо с помощью ''Eclipse'', чтобы компилятор знал, где найти локальную установку SDK.&amp;lt;/blockquote&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;==&lt;/del&gt;== Начальные установки: приступаем &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;==&lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Начальные установки: приступаем ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Я компилировала в версии 10, и она нужна по меньшей мере одному примененному здесь классу, но все базовые классы должны быть доступны и в более ранних версиях:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Я компилировала в версии 10, и она нужна по меньшей мере одному примененному здесь классу, но все базовые классы должны быть доступны и в более ранних версиях:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 122:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 123:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;==&lt;/del&gt;== Создание ArrayAdapter &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;==&lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Создание ArrayAdapter ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Вернемся к updateMP3List(). Оператор if проверяет, есть ли в каталоге на SD-карте MP3-файлы. Если их нет, будет использоваться строка «empty». Хотя блок else пуст, стоит задокументировать, что это сделано сознательно – проще будет сопровождать код потом.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Вернемся к updateMP3List(). Оператор if проверяет, есть ли в каталоге на SD-карте MP3-файлы. Если их нет, будет использоваться строка «empty». Хотя блок else пуст, стоит задокументировать, что это сделано сознательно – проще будет сопровождать код потом.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 179:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 180:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;});&amp;lt;/code&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;blockquote&amp;gt;ВРЕЗКА &lt;/del&gt;Нет SD-карты?&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;Нет SD-карты?&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;/del&gt;Если в системе нет SD-карты (т. е. нельзя не только «получить список MP3-файлов», но и «получить содержимое каталога»), вы получите NullPointerException. К сожалению, этого нельзя избежать проверками home.exists() или home.isDirectory(), так как каталог SD-карты виден и отображается как каталог, даже если на самом деле его не существует. Ошибка возникнет только при попытке получить список файлов. Вместо этого нужно поместить оператор if/else в блок try/catch:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;/del&gt;&amp;lt;code&amp;gt;try {&amp;lt;/code&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;/del&gt;&amp;lt;code&amp;gt;if (home.listFiles [ ... ] ) { [ ... ] }&amp;lt;/code&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;/del&gt;&amp;lt;code&amp;gt;else { [ /// ] }&amp;lt;/code&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;/del&gt;&amp;lt;code&amp;gt;} catch (NullPointerException e) {&amp;lt;/code&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;/del&gt;&amp;lt;code&amp;gt;return;&amp;lt;/code&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;/del&gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&lt;/del&gt;Код тихо завершится, и TextView использует строку «empty» с ID «empty». Пожалуй, можно слегка улучшить этот пример, показав в TextView сообщение о том, что SD-карта не найдена.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;КАРТИНКА&amp;#160; &lt;/del&gt;LXF151.code_android.lig_opt.png Приложение, запущенное с темой ‘light’ — некоторым пользователям она может показаться нагляднее.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/blockquote&amp;gt;&amp;lt;blockquote&amp;gt;Приложение, запущенное с темой ‘light’ — некоторым пользователям она может показаться нагляднее.&amp;lt;/blockquote&amp;gt;&lt;/del&gt;Опять же, API делает львиную долю работы, предоставляя метод setOnCompletionListener и класс OnCompletionListener. Нам остается написать метод nextMp3():&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;});&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{Врезка|Ширина=30%|Заголовок=&lt;/ins&gt;Нет SD-карты?&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|Содержание=&lt;/ins&gt;Если в системе нет SD-карты (т. е. нельзя не только «получить список MP3-файлов», но и «получить содержимое каталога»), вы получите NullPointerException. К сожалению, этого нельзя избежать проверками home.exists() или home.isDirectory(), так как каталог SD-карты виден и отображается как каталог, даже если на самом деле его не существует. Ошибка возникнет только при попытке получить список файлов. Вместо этого нужно поместить оператор if/else в блок try/catch:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;&amp;lt;code&amp;gt;try {&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;&amp;lt;code&amp;gt;if (home.listFiles [ ... ] ) { [ ... ] }&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;&amp;lt;code&amp;gt;else { [ /// ] }&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;&amp;lt;code&amp;gt;} catch (NullPointerException e) {&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;&amp;lt;code&amp;gt;return;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Код тихо завершится, и TextView использует строку «empty» с ID «empty». Пожалуй, можно слегка улучшить этот пример, показав в TextView сообщение о том, что SD-карта не найдена.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Файл:&lt;/ins&gt;LXF151.code_android.lig_opt.png&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|thumb|&lt;/ins&gt;Приложение, запущенное с темой ‘light’ — некоторым пользователям она может показаться нагляднее.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Опять же, API делает львиную долю работы, предоставляя метод setOnCompletionListener и класс OnCompletionListener. Нам остается написать метод nextMp3():&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;private void nextMp3() {&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;private void nextMp3() {&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ssr</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;diff=15865&amp;oldid=prev</id>
		<title>Ssr: Новая страница: «# Android: Музыка на марше Android Хорошо документированный API позволяет проигрывать файлы MP3  &lt;blo…»</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;diff=15865&amp;oldid=prev"/>
				<updated>2018-01-27T04:09:32Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «# Android: Музыка на марше Android Хорошо документированный API позволяет проигрывать файлы MP3  &amp;lt;blo…»&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxformat.ru/wiki/index.php?title=LXF151:Android:_%D0%9C%D1%83%D0%B7%D1%8B%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%BC%D0%B0%D1%80%D1%88%D0%B5&amp;amp;diff=15865&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Ssr</name></author>	</entry>

	</feed>