Fragment 和 FragmentTabHost 都是Android.support.v4.app包下的类,所以我们再使用是首先要先导入正确的包,而在XML文件中我们需要如下使用:
<code class="language-python hljs has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><LinearLayout xmlns:android=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"http://schemas.android.com/apk/res/android"</span> android:layout_width=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"match_parent"</span> android:layout_height=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"match_parent"</span> android:orientation=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"vertical"</span>> <FrameLayout android:id=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"@+id/realtabcontent"</span> android:layout_width=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"match_parent"</span> android:layout_height=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"0dp"</span> android:layout_weight=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"1"</span>/> <android.support.v4.app.FragmentTabHost android:id=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"@android:id/tabhost"</span> android:layout_width=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"match_parent"</span> android:layout_height=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"wrap_content"</span>> <FrameLayout android:id=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"@android:id/tabcontent"</span> android:layout_width=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"0dp"</span> android:layout_height=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"0dp"</span> android:layout_weight=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"1"</span>/> </android.support.v4.app.FragmentTabHost> </LinearLayout></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li></ul>
我们定义垂直方向的LinearLayout布局,FrameLayout用来显示我们的只要内容,FragmentTabHost用来在底部显示菜单。
ok,布局文件已配置好了,下面可考虑怎么加载到Acitivity中,在这之前,我习惯先创建一个Application,里面封装一个全局的Context变量,如:
<code class="language-python hljs has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">public <span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">class</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">MyApplication</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">extends</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">Application</span>{ <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">private</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">Context</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">mContext</span>;//全局获取<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">context</span> @<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">Override</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">void</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">onCreate</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">super</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">onCreate</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">mContext</span> = <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getApplicationContext</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>; } /** * 获取全局<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">context</span> */ <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">Context</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getContext</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>{ <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">mContext</span>; } }</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li></ul>
还有先定义一个BaseActivity作为其他Activity的父类,并且把获取全部的资源方法封装进去。
<code class="language-python hljs has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">public <span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">class</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">BaseActivity</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">extends</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">Activity</span>{ @<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">Override</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">protected</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">void</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">onCreate</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(Bundle savedInstanceState)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">super</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">onCreate</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(savedInstanceState)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">Context</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getContext</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>{ <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">SanHuiAppsAnimationApplication</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getContext</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getLayoutId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(Context context, String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">context</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getResources</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getIdentifier</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(paramString, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"layout"</span>, context.getPackageName<span class="hljs-params" style="box-sizing: border-box;">()</span>)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getStringId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(Context context, String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">context</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getResources</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getIdentifier</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(paramString, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"string"</span>, context.getPackageName<span class="hljs-params" style="box-sizing: border-box;">()</span>)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getDrawableId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(Context context, String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">context</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getResources</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getIdentifier</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(paramString, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"drawable"</span>, context.getPackageName<span class="hljs-params" style="box-sizing: border-box;">()</span>)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getStyleId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(Context context, String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">context</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getResources</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getIdentifier</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(paramString, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"style"</span>, context.getPackageName<span class="hljs-params" style="box-sizing: border-box;">()</span>)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(Context context, String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">context</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getResources</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getIdentifier</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(paramString, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"id"</span>, context.getPackageName<span class="hljs-params" style="box-sizing: border-box;">()</span>)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getMenuId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(Context context, String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">context</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getResources</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getIdentifier</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(paramString, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"menu"</span>, context.getPackageName<span class="hljs-params" style="box-sizing: border-box;">()</span>)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getColorId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(Context context, String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">context</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getResources</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getIdentifier</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(paramString, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"color"</span>, context.getPackageName<span class="hljs-params" style="box-sizing: border-box;">()</span>)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getLayoutId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getLayoutId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(getContext<span class="hljs-params" style="box-sizing: border-box;">()</span>, paramString)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getStringId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getStringId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(getContext<span class="hljs-params" style="box-sizing: border-box;">()</span>, paramString)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getDrawableId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getDrawableId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(getContext<span class="hljs-params" style="box-sizing: border-box;">()</span>, paramString)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getStyleId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getStyleId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(getContext<span class="hljs-params" style="box-sizing: border-box;">()</span>, paramString)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(getContext<span class="hljs-params" style="box-sizing: border-box;">()</span>, paramString)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getMenuId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getMenuId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(getContext<span class="hljs-params" style="box-sizing: border-box;">()</span>, paramString)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getColorId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getColorId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(getContext<span class="hljs-params" style="box-sizing: border-box;">()</span>, paramString)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getAnimId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getContext</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getResources</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getIdentifier</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(paramString, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"anim"</span>, getContext<span class="hljs-params" style="box-sizing: border-box;">()</span>.getPackageName<span class="hljs-params" style="box-sizing: border-box;">()</span>)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getAttrId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getContext</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getResources</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getIdentifier</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(paramString, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"attr"</span>, getContext<span class="hljs-params" style="box-sizing: border-box;">()</span>.getPackageName<span class="hljs-params" style="box-sizing: border-box;">()</span>)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getInterpolator</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(String name)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getContext</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getResources</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getIdentifier</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(name, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"interpolator"</span>, getContext<span class="hljs-params" style="box-sizing: border-box;">()</span>.getPackageName<span class="hljs-params" style="box-sizing: border-box;">()</span>)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">static</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">int</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getDimenId</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(String paramString)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getContext</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getResources</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">()</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getIdentifier</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(paramString, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"dimen"</span>, getContext<span class="hljs-params" style="box-sizing: border-box;">()</span>.getPackageName<span class="hljs-params" style="box-sizing: border-box;">()</span>)</span>; } }</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li></ul>
好,准备工作已完成,,现在来看看怎么把我们的刚才的main.xml添加到MainActivity中,并实现底部菜单的切换。
<code class="language-python hljs has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">public <span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">class</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">MainActivity</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">extends</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">FragmentActivity</span>{ <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">private</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">FragmentTabHost</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">mFragmentTabHost</span>; @<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">Override</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">protected</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">void</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">onCreate</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(Bundle savedInstanceState)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">super</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">onCreate</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(savedInstanceState)</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">setContentView</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(BaseActivity.getLayoutId<span class="hljs-params" style="box-sizing: border-box;">(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"activity_main"</span>)</span>)</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">mFragmentTabHost</span> = <span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(FragmentTabHost)</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">findViewById</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(android.R.id.tabhost)</span>; //初始化<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">FragmentTabHost</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">mFragmentTabHost</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">setup</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(this,getSupportFragmentManager<span class="hljs-params" style="box-sizing: border-box;">()</span>,BaseActivity.getId<span class="hljs-params" style="box-sizing: border-box;">(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"realtabcontent"</span>)</span>)</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">addTabView</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Collection"</span>, BaseActivity.getDrawableId<span class="hljs-params" style="box-sizing: border-box;">(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"main_tab_item_collection"</span>)</span>, CollectionFragment.class)</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">addTabView</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Animation"</span>, BaseActivity.getDrawableId<span class="hljs-params" style="box-sizing: border-box;">(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"main_tab_item_animation"</span>)</span>, AnimationFragment.class)</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">addTabView</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Game"</span>, BaseActivity.getDrawableId<span class="hljs-params" style="box-sizing: border-box;">(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"main_tab_item_game"</span>)</span>, GameFragment.class)</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">addTabView</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Mine"</span>, BaseActivity.getDrawableId<span class="hljs-params" style="box-sizing: border-box;">(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"main_tab_item_mine"</span>)</span>, MineFragment.class)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">void</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">addTabView</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(String viewTag, int iconId, Class<?> cls)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">View</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">viewTabWidget</span> = <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getTabWidget</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(iconId)</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">TabHost</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">TabSpec</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">tabSpec</span> = <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">mFragmentTabHost</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">newTabSpec</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(viewTag)</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">tabSpec</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">setIndicator</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(viewTabWidget)</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">mFragmentTabHost</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">addTab</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(tabSpec,cls,null)</span>; } <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">public</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">View</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">getTabWidget</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(int iconId)</span> { <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">View</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">viewTabWidget</span> = <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">LayoutInflater</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">from</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(this)</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">inflate</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(BaseActivity.getLayoutId<span class="hljs-params" style="box-sizing: border-box;">(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"activity_main_tabwidget"</span>)</span>, null)</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">ImageView</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">view</span> = <span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(ImageView)</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">viewTabWidget</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">findViewById</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(BaseActivity.getId<span class="hljs-params" style="box-sizing: border-box;">(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"tab_label"</span>)</span>)</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">view</span>.<span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">setImageResource</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(iconId)</span>; <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">return</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">viewTabWidget</span>; } } </span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li></ul>
其实很简单,首先,是通过获取资源文件并绑定FragmentTabHost,其中值得注意的是:
mFragmentTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);这个是从android.R.id.tabhost获取,main.xml也是这么给出的id,不要搞混了。
然后,通过得到所支持的FragmentManager来初始化FragmentTabHost,并绑定用于显示正文的Fragment。
再次,我们通过addTabView()方法把底部菜单所需要的View展示出来,这里使用的是TabHost.TabSpec,它需要一个标示几个参数,一个是tag标示,一个是用于底部菜单显示的view等,可以自己选择设置。这里的菜单View我是用xml文件selector选择器来自动选择的,因为四个底部菜单所用一样,这里就只贴出一个供参考:
<code class="language-python hljs has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><?xml version=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"1.0"</span> encoding=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"utf-8"</span>?> <selector xmlns:android=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"http://schemas.android.com/apk/res/android"</span>> <item android:drawable=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"@mipmap/main_tab_collection"</span> android:state_selected=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"false"</span>/> <item android:drawable=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"@mipmap/main_tab_collection_h"</span> android:state_selected=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"true"</span>/> </selector></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul>
最后,我们通过mFragmentTabHost.addTab(tabSpec,cls,null);把底部菜单和与之相关联的Fragment关联起来,从而达到在我们点击底部菜单时显示与之相对应的正文内容。