Tab Layout 之多个Activity实现
来源:互联网 发布:linux修改了profile 编辑:程序博客网 时间:2024/05/18 11:02
上次说了可以用两种方法实现Tab Layout,之前写了单个Activity实现,现在来用多个Activity来实现,这篇文章是翻译的android develop网站上的文章!
单个Activity实现就是在一个Activity里面切换显示内容,我们上次用的是三个TextView。这里我们用3个Activity实现,每次点击一个tab的时候,就打开一个新的Activity!我们创建一个tabbed UI,为每一个tab创建一个Activity!
第一步:创建一个新的Android项目,命名为:HelloTabWidget。
第二步:在项目中创建3个单独的Activity: ArtistsActivity
, AlbumsActivity
, andSongsActivity
. 在每一个Activity里面创建一个TextView来显示每个tab的内容!这里举一个例子,其他的两个类似:
public class ArtistsActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textview = new TextView(this); textview.setText("This is the Artists tab"); setContentView(textview); }}
把创建的3个Activity加入到 Android Manifest 文件中!
第三步:我们为每个tab准备两个图片,一个是选中该tab时显示的图片,一个是没有选中该tab时显示的图片,如下所示:
在项目中新建如下目录res/drawable/,在该目录下创建ic_tab_artists.xml文件,作用即是根据tab是否选中来设置显示的图标,文件内容如下:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- When selected, use grey --> <item android:drawable="@drawable/ic_tab_artists_grey" android:state_selected="true" /> <!-- When not selected, use white--> <item android:drawable="@drawable/ic_tab_artists_white" /></selector>
第四步:打开res/layout/main.xml文件,修改内容如下:
<?xml version="1.0" encoding="utf-8"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" /> </LinearLayout></TabHost>
第五步:打开HelloTabWidget.java文件,继承自TabActivity:
public class HelloTabWidget extends TabActivity第六步:在oncreate()方法中添加如下代码:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = getTabHost(); // The activity TabHost TabHost.TabSpec spec; // Resusable TabSpec for each tab Intent intent; // Reusable Intent for each tab // Create an Intent to launch an Activity for the tab (to be reused) intent = new Intent().setClass(this, ArtistsActivity.class); // Initialize a TabSpec for each tab and add it to the TabHost spec = tabHost.newTabSpec("artists").setIndicator("Artists", res.getDrawable(R.drawable.ic_tab_artists)) .setContent(intent); tabHost.addTab(spec); // Do the same for the other tabs intent = new Intent().setClass(this, AlbumsActivity.class); spec = tabHost.newTabSpec("albums").setIndicator("Albums", res.getDrawable(R.drawable.ic_tab_albums)) .setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, SongsActivity.class); spec = tabHost.newTabSpec("songs").setIndicator("Songs", res.getDrawable(R.drawable.ic_tab_songs)) .setContent(intent); tabHost.addTab(spec); tabHost.setCurrentTab(2);}
上面的代码和单个Activity实现的代码基本一样,这里就不再逐行解释。
第七步:打开Android Manifest file文件,添加 NoTitleBar
主题到 HelloTabWidget's <activity>
标签中,如下所示:
<activity android:name=".HelloTabWidget" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">第八步:运行程序,截图如下:
- Tab Layout 之多个Activity实现
- Tab Layout 之多个Activity实现
- Tab Layout 之单个Activity实现
- 实现Tabhost每个tab中放入多个Activity!
- Android tab 实现子Activity跳转
- Activity转View实现Tab切换
- easyui layout+tab+tree实现网站基本布局
- easyui layout+tab+tree实现网站基本布局
- Android之多个Activity之间的关系和Intent作用
- 7.HelloWorld之多个Activity之间通过Intent进行跳转
- Android Studio之多个Activity的滑动切换(二)
- Java NIO之多个Selector的实现
- Tab Layout Tutorials 详解
- Tab Layout的使用
- Tab Layout教程
- android tab layout
- 在一个Activity中切换多个layout
- 一个Activity分别加载多个layout布局文件
- CSS网页编码以前需要注意的十个问题
- Android使用NDK开发项目时的一些问题
- Android Build System ---- how to add your product and board config *.mk
- 痴情研究java内存中的对象
- requestValidationMode 导致 ValidateRequest=False 失效或者ASP.NET 4.0事件消息: 发生了验证错误;检测到有潜在危险的Request.Form值
- Tab Layout 之多个Activity实现
- Android build sequence
- HttpHandler 异步监听请求
- 使用drbd配置两天linux磁盘同步
- flex学习笔记(七) 常用参数
- Android中获取IMEI码
- LBS平台
- 在设计iPhone应用程序标签栏时的一些经验
- 256色图像不一定是灰度图像。