Skip to content

Commit 968e215

Browse files
author
malinkang
committed
update
2 parents 02bfd08 + 43eb28d commit 968e215

52 files changed

Lines changed: 2939 additions & 204 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.DS_Store

8 KB
Binary file not shown.

GLOSSARY.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
##Android学习笔记
1+

SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
# Summary
23

34
* [Introduction](README.md)

_book/GLOSSARY.html

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<meta charset="UTF-8">
77
<meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" />
8-
<title>Glossary | Android学习笔记</title>
8+
<title>Glossary | </title>
99
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
1010
<meta name="description" content="">
1111
<meta name="generator" content="GitBook 1.4.1">
@@ -37,7 +37,7 @@
3737

3838

3939

40-
<div class="book" data-level="" data-basepath="." data-revision="1422846108795">
40+
<div class="book" data-level="" data-basepath="." data-revision="1425398533852">
4141

4242

4343
<div class="book-summary">
@@ -728,8 +728,6 @@
728728
<a href="#" class="btn pull-left toggle-summary" aria-label="Toggle summary"><i class="fa fa-align-justify"></i></a>
729729
<a href="#" class="btn pull-left toggle-search" aria-label="Toggle search"><i class="fa fa-search"></i></a>
730730

731-
<a href="./GLOSSARY.html" class="btn pull-left" aria-label="Open Glossary"><i class="fa fa-sort-alpha-asc"></i></a>
732-
733731
<div id="font-settings-wrapper" class="dropdown pull-left">
734732
<a href="#" class="btn toggle-dropdown" aria-label="Toggle font settings"><i class="fa fa-font"></i>
735733
</a>
@@ -793,7 +791,7 @@
793791
<!-- Title -->
794792
<h1>
795793
<i class="fa fa-circle-o-notch fa-spin"></i>
796-
<a href="./" >Android学习笔记</a>
794+
<a href="./" ></a>
797795
</h1>
798796
</div>
799797

_book/activity/transmission-data.html

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<meta charset="UTF-8">
77
<meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" />
8-
<title>数据传递 | Android学习笔记</title>
8+
<title>数据传递 | </title>
99
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
1010
<meta name="description" content="">
1111
<meta name="generator" content="GitBook 1.4.1">
@@ -33,7 +33,7 @@
3333

3434

3535

36-
<div class="book" data-level="3.1" data-basepath=".." data-revision="1422846108795">
36+
<div class="book" data-level="3.1" data-basepath=".." data-revision="1425398533852">
3737

3838

3939
<div class="book-summary">
@@ -724,8 +724,6 @@
724724
<a href="#" class="btn pull-left toggle-summary" aria-label="Toggle summary"><i class="fa fa-align-justify"></i></a>
725725
<a href="#" class="btn pull-left toggle-search" aria-label="Toggle search"><i class="fa fa-search"></i></a>
726726

727-
<a href="../GLOSSARY.html" class="btn pull-left" aria-label="Open Glossary"><i class="fa fa-sort-alpha-asc"></i></a>
728-
729727
<div id="font-settings-wrapper" class="dropdown pull-left">
730728
<a href="#" class="btn toggle-dropdown" aria-label="Toggle font settings"><i class="fa fa-font"></i>
731729
</a>
@@ -789,15 +787,15 @@
789787
<!-- Title -->
790788
<h1>
791789
<i class="fa fa-circle-o-notch fa-spin"></i>
792-
<a href="../" >Android学习笔记</a>
790+
<a href="../" ></a>
793791
</h1>
794792
</div>
795793

796794
<div class="page-wrapper" tabindex="-1">
797795
<div class="page-inner">
798796

799797

800-
<section class="normal" id="section-gitbook_2">
798+
<section class="normal" id="section-gitbook_678">
801799

802800
<p>Android中,Activity和Fragment之间传递对象,可以通过将对象序列化并存入Bundle或者Intent中进行传递,也可以将对象转化为JSON字符串,进行传递。</p>
803801
<p>序列化对象可以使用Java的<code>Serializable</code>的接口<code>Parcelable</code>接口。转化成JSON字符串,可以使用<code>Gson</code>等库。</p>
@@ -981,9 +979,12 @@ <h3 id="51-parceler">5.1 parceler</h3>
981979
<p>Parceler使用非常简单,在定义Model时用<code>@Parcel</code>进行注解,在传递数据的时候使用<code>Parcels</code><code>wrap</code>方法来包装成一个<code>Parcelable</code>对象。获取数据时用<code>Parcels</code><code>unwrap</code>方法来获取对象。</p>
982980
<p>Model</p>
983981
<pre><code class="lang-java">
984-
<span class="hljs-annotation">@Parcel</span>
982+
&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD
983+
984+
<span class="hljs-annotation">@Parcel</span>
985+
986+
<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Author</span> </span>{
985987

986-
<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Author</span> </span>{
987988

988989
<span class="hljs-keyword">int</span> id;
989990

_book/annotation/androidannotations.html

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<meta charset="UTF-8">
77
<meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" />
8-
<title>AndroidAnnotations | Android学习笔记</title>
8+
<title>AndroidAnnotations | </title>
99
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
1010
<meta name="description" content="">
1111
<meta name="generator" content="GitBook 1.4.1">
@@ -35,7 +35,7 @@
3535

3636

3737

38-
<div class="book" data-level="10.2" data-basepath=".." data-revision="1422846108795">
38+
<div class="book" data-level="10.2" data-basepath=".." data-revision="1425398533852">
3939

4040

4141
<div class="book-summary">
@@ -726,8 +726,6 @@
726726
<a href="#" class="btn pull-left toggle-summary" aria-label="Toggle summary"><i class="fa fa-align-justify"></i></a>
727727
<a href="#" class="btn pull-left toggle-search" aria-label="Toggle search"><i class="fa fa-search"></i></a>
728728

729-
<a href="../GLOSSARY.html" class="btn pull-left" aria-label="Open Glossary"><i class="fa fa-sort-alpha-asc"></i></a>
730-
731729
<div id="font-settings-wrapper" class="dropdown pull-left">
732730
<a href="#" class="btn toggle-dropdown" aria-label="Toggle font settings"><i class="fa fa-font"></i>
733731
</a>
@@ -791,15 +789,15 @@
791789
<!-- Title -->
792790
<h1>
793791
<i class="fa fa-circle-o-notch fa-spin"></i>
794-
<a href="../" >Android学习笔记</a>
792+
<a href="../" ></a>
795793
</h1>
796794
</div>
797795

798796
<div class="page-wrapper" tabindex="-1">
799797
<div class="page-inner">
800798

801799

802-
<section class="normal" id="section-gitbook_3">
800+
<section class="normal" id="section-gitbook_679">
803801

804802
<h1 id="androidannotations">AndroidAnnotations</h1>
805803
<p><a href="https://github.com/excilys/androidannotations/" target="_blank">AndroidAnnotations</a>是一个能够让你快速进行Android开发的开源框架,它能让你专注于真正重要的地方。

_book/annotation/butterknife.html

Lines changed: 138 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<meta charset="UTF-8">
77
<meta http-equiv="X-UA-Compatible" content="IE=11; IE=10; IE=9; IE=8; IE=7; IE=EDGE" />
8-
<title>ButterKnife | Android学习笔记</title>
8+
<title>ButterKnife | </title>
99
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
1010
<meta name="description" content="">
1111
<meta name="generator" content="GitBook 1.4.1">
@@ -35,7 +35,7 @@
3535

3636

3737

38-
<div class="book" data-level="10.1" data-basepath=".." data-revision="1422846108795">
38+
<div class="book" data-level="10.1" data-basepath=".." data-revision="1425398533852">
3939

4040

4141
<div class="book-summary">
@@ -726,8 +726,6 @@
726726
<a href="#" class="btn pull-left toggle-summary" aria-label="Toggle summary"><i class="fa fa-align-justify"></i></a>
727727
<a href="#" class="btn pull-left toggle-search" aria-label="Toggle search"><i class="fa fa-search"></i></a>
728728

729-
<a href="../GLOSSARY.html" class="btn pull-left" aria-label="Open Glossary"><i class="fa fa-sort-alpha-asc"></i></a>
730-
731729
<div id="font-settings-wrapper" class="dropdown pull-left">
732730
<a href="#" class="btn toggle-dropdown" aria-label="Toggle font settings"><i class="fa fa-font"></i>
733731
</a>
@@ -791,17 +789,136 @@
791789
<!-- Title -->
792790
<h1>
793791
<i class="fa fa-circle-o-notch fa-spin"></i>
794-
<a href="../" >Android学习笔记</a>
792+
<a href="../" ></a>
795793
</h1>
796794
</div>
797795

798796
<div class="page-wrapper" tabindex="-1">
799797
<div class="page-inner">
800798

801799

802-
<section class="normal" id="section-gitbook_4">
800+
<section class="normal" id="section-gitbook_680">
803801

804802
<h1 id="butterknife">ButterKnife</h1>
803+
<p>&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD</p>
804+
<p>ButterKnife是一个Android View注入的库。</p>
805+
<h2 id="1-eclipse">1 配置Eclipse</h2>
806+
<p>在使用ButterKnife需要先配置一下Eclipse。</p>
807+
<p>项目右键-Properties-Java Complier-Annotation Processing 确保设置和下图一致</p>
808+
<p><img src="http://jakewharton.github.io/butterknife/static/ide-eclipse1.png" alt=""></p>
809+
<p>接着展开Annotation Processing选择Factory Path,选中Enable project specific settings。然后点击 Add JARs...,选中ButterKnife的jar包</p>
810+
<p><img src="http://jakewharton.github.io/butterknife/static/ide-eclipse2.png" alt=""></p>
811+
<p>然后点击ok保存设置,Eclipse将问你是否重新构建新项目,点击Yes。</p>
812+
<p>确保你项目的根目录里有一个.apt_generated的文件夹,文件夹中包含YOURACTIVITY$$ViewInjector.java这样的文件。</p>
813+
<h2 id="2-">2 使用注解</h2>
814+
<p>在Activity中使用注解</p>
815+
<pre><code class="lang-java"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExampleActivity</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Activity</span> </span>{
816+
<span class="hljs-annotation">@InjectView</span>(R.id.title) TextView title;
817+
<span class="hljs-annotation">@InjectView</span>(R.id.subtitle) TextView subtitle;
818+
<span class="hljs-annotation">@InjectView</span>(R.id.footer) TextView footer;
819+
820+
<span class="hljs-annotation">@Override</span> <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onCreate</span><span class="hljs-params">(Bundle savedInstanceState)</span> </span>{
821+
<span class="hljs-keyword">super</span>.onCreate(savedInstanceState);
822+
setContentView(R.layout.simple_activity);
823+
ButterKnife.inject(<span class="hljs-keyword">this</span>);
824+
<span class="hljs-comment">// TODO Use "injected" views...</span>
825+
}
826+
}
827+
</code></pre>
828+
<p>Fragment中使用注解</p>
829+
<pre><code class="lang-java">
830+
<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">FancyFragment</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Fragment</span> </span>{
831+
<span class="hljs-annotation">@InjectView</span>(R.id.button1) Button button1;
832+
<span class="hljs-annotation">@InjectView</span>(R.id.button2) Button button2;
833+
834+
<span class="hljs-annotation">@Override</span> <span class="hljs-function">View <span class="hljs-title">onCreateView</span><span class="hljs-params">(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)</span> </span>{
835+
View view = inflater.inflate(R.layout.fancy_fragment, container, <span class="hljs-keyword">false</span>);
836+
ButterKnife.inject(<span class="hljs-keyword">this</span>, view);
837+
<span class="hljs-comment">// TODO Use "injected" views...</span>
838+
<span class="hljs-keyword">return</span> view;
839+
}
840+
}
841+
</code></pre>
842+
<p>Adapter中使用注解</p>
843+
<pre><code class="lang-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyAdapter</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">BaseAdapter</span> </span>{
844+
<span class="hljs-annotation">@Override</span> <span class="hljs-function"><span class="hljs-keyword">public</span> View <span class="hljs-title">getView</span><span class="hljs-params">(<span class="hljs-keyword">int</span> position, View view, ViewGroup parent)</span> </span>{
845+
ViewHolder holder;
846+
<span class="hljs-keyword">if</span> (view != <span class="hljs-keyword">null</span>) {
847+
holder = (ViewHolder) view.getTag();
848+
} <span class="hljs-keyword">else</span> {
849+
view = inflater.inflate(R.layout.whatever, parent, <span class="hljs-keyword">false</span>);
850+
holder = <span class="hljs-keyword">new</span> ViewHolder(view);
851+
view.setTag(holder);
852+
}
853+
854+
holder.name.setText(<span class="hljs-string">"John Doe"</span>);
855+
<span class="hljs-comment">// etc...</span>
856+
857+
<span class="hljs-keyword">return</span> convertView;
858+
}
859+
860+
<span class="hljs-keyword">static</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ViewHolder</span> </span>{
861+
<span class="hljs-annotation">@InjectView</span>(R.id.title) TextView name;
862+
<span class="hljs-annotation">@InjectView</span>(R.id.job_title) TextView jobTitle;
863+
864+
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-title">ViewHolder</span><span class="hljs-params">(View view)</span> </span>{
865+
ButterKnife.inject(<span class="hljs-keyword">this</span>, view);
866+
}
867+
}
868+
}
869+
</code></pre>
870+
<h2 id="3">3.事件注入</h2>
871+
<p>点击事件注入</p>
872+
<pre><code class="lang-java">
873+
<span class="hljs-annotation">@OnClick</span>(R.id.submit)
874+
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">sayHi</span><span class="hljs-params">(Button button)</span> </span>{
875+
button.setText(<span class="hljs-string">"Hello!"</span>);
876+
}
877+
</code></pre>
878+
<p>多个控件具有相同的事件</p>
879+
<pre><code class="lang-java"><span class="hljs-annotation">@OnClick</span>({ R.id.door1, R.id.door2, R.id.door3 })
880+
<span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">pickDoor</span><span class="hljs-params">(DoorView door)</span> </span>{
881+
<span class="hljs-keyword">if</span> (door.hasPrizeBehind()) {
882+
Toast.makeText(<span class="hljs-keyword">this</span>, <span class="hljs-string">"You win!"</span>, LENGTH_SHORT).show();
883+
} <span class="hljs-keyword">else</span> {
884+
Toast.makeText(<span class="hljs-keyword">this</span>, <span class="hljs-string">"Try again"</span>, LENGTH_SHORT).show();
885+
}
886+
}
887+
</code></pre>
888+
<h2 id="4">4.重置注入</h2>
889+
<pre><code>public class FancyFragment extends Fragment {
890+
@InjectView(R.id.button1) Button button1;
891+
@InjectView(R.id.button2) Button button2;
892+
893+
@Override View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
894+
View view = inflater.inflate(R.layout.fancy_fragment, container, false);
895+
ButterKnife.inject(this, view);
896+
// TODO Use &quot;injected&quot; views...
897+
return view;
898+
}
899+
900+
@Override void onDestroyView() {
901+
super.onDestroyView();
902+
ButterKnife.reset(this);
903+
}
904+
}
905+
</code></pre><h2 id="">可选注入</h2>
906+
<p>默认情况下@InjectView和@OnClick注入是必选的,如果view未找到将出现异常。为了避免出现异常,添加一个@Optional注解。</p>
907+
<h2 id="">其它</h2>
908+
<p>ButterKnife还包含了两个findById方法。</p>
909+
<pre><code>
910+
View view = LayoutInflater.from(context).inflate(R.layout.thing, null);
911+
TextView firstName = ButterKnife.findById(view, R.id.first_name);
912+
TextView lastName = ButterKnife.findById(view, R.id.last_name);
913+
ImageView photo = ButterKnife.findById(view, R.id.photo);
914+
</code></pre><h2 id="">混淆</h2>
915+
<p>为避免混淆的时代码被移除,所以要在proguard-project.txt中添加如下代码避免混淆</p>
916+
<pre><code>-dontwarn butterknife.internal.**
917+
-keep class **$$ViewInjector { *; }
918+
-keepnames class * { @butterknife.InjectView *;}
919+
</code></pre><h2 id="">阅读更多</h2>
920+
<p><a href="http://jakewharton.github.io/butterknife/" target="_blank">Butterknife</a></p>
921+
<p>=======</p>
805922
<p>ButterKnife是一个Android View注入的库。</p>
806923
<h2 id="1-eclipse">1 配置Eclipse</h2>
807924
<p>在使用ButterKnife需要先配置一下Eclipse。</p>
@@ -919,6 +1036,21 @@ <h2 id="">其它</h2>
9191036
-keepnames class * { @butterknife.InjectView *;}
9201037
</code></pre><h2 id="">阅读更多</h2>
9211038
<p><a href="http://jakewharton.github.io/butterknife/" target="_blank">Butterknife</a></p>
1039+
<blockquote>
1040+
<blockquote>
1041+
<blockquote>
1042+
<blockquote>
1043+
<blockquote>
1044+
<blockquote>
1045+
<blockquote>
1046+
<p>43eb28dc379e3887bf933756ee10845587398c6c</p>
1047+
</blockquote>
1048+
</blockquote>
1049+
</blockquote>
1050+
</blockquote>
1051+
</blockquote>
1052+
</blockquote>
1053+
</blockquote>
9221054

9231055

9241056
</section>

0 commit comments

Comments
 (0)