androidtabHost布局之一继承TabActivity并以activity布局Word下载.docx

上传人:b****5 文档编号:19889342 上传时间:2023-01-11 格式:DOCX 页数:11 大小:205.72KB
下载 相关 举报
androidtabHost布局之一继承TabActivity并以activity布局Word下载.docx_第1页
第1页 / 共11页
androidtabHost布局之一继承TabActivity并以activity布局Word下载.docx_第2页
第2页 / 共11页
androidtabHost布局之一继承TabActivity并以activity布局Word下载.docx_第3页
第3页 / 共11页
androidtabHost布局之一继承TabActivity并以activity布局Word下载.docx_第4页
第4页 / 共11页
androidtabHost布局之一继承TabActivity并以activity布局Word下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

androidtabHost布局之一继承TabActivity并以activity布局Word下载.docx

《androidtabHost布局之一继承TabActivity并以activity布局Word下载.docx》由会员分享,可在线阅读,更多相关《androidtabHost布局之一继承TabActivity并以activity布局Word下载.docx(11页珍藏版)》请在冰豆网上搜索。

androidtabHost布局之一继承TabActivity并以activity布局Word下载.docx

8. 

9. 

@Override 

10. 

protected 

void 

onCreate(Bundle 

savedInstanceState) 

11. 

super.onCreate(savedInstanceState);

12. 

TextView 

textView 

new 

TextView(this);

13. 

// 

该文档将会作为标签的内容进行显示 

14. 

textView.setText("

艺术内容"

);

15. 

setContentView(textView);

16. 

17. 

18.} 

MusicActivity.java

viewplaincopytoclipboardprint?

MusicActivity 

音乐内容"

17.} 

SportActivity.java

SportActivity 

运动内容"

ArtistActivity.java 

MusicActivity.java 

SportActivity.java三个activity是用做标签内容的activity。

即当用户点击相应的标签时,下边会显示相应的activity内容。

ic_tab.xml代码

1.<

?

xml 

version="

1.0"

encoding="

utf-8"

>

2.<

selector 

3. 

xmlns:

android="

4. 

5. 

<

item 

android:

drawable="

@drawable/grey"

state_selected="

true"

7. 

/item>

@drawable/black"

11.<

/selector>

这里一定要注意ic_tab.xml文件的位置,是放在res/drawable文件夹下的。

有些朋友说怎么没有这个文件夹啊,实际上大家看到了我将它放在了drawable-hdpi中了,实际上drawable-hdpi、drawable-ldpi、drawable-mdpi三个文件夹都属于drawable文件夹的哦。

该文件它规定了,当标签获得焦点和失去焦点时,标签上显示什么图片。

例如本例中,就是当state_selected="

(当标签被选中时),显示@drawable/grey指定的资源图片。

当未被选中时,显示@drawable/black指定的资源图片。

tagView.java代码:

android.app.TabActivity;

android.content.Intent;

android.content.res.Resources;

6.import 

7.import 

android.widget.TabHost;

9./** 

@author 

chenzheng_Java 

@description 

注意,该类一定要继承TabActivity 

*/ 

13.public 

TagView 

TabActivity 

public 

setContentView(R.layout.main);

 

18. 

android代码中访问application资源的一个类 

19. 

Resources 

resources 

getResources();

20. 

获取当前activity的标签,该方法的实现中已经执行了setContentView(com.android.internal.R.layout.tab_content);

21. 

TabHost 

tabHost 

getTabHost();

22. 

每一个标签项 

23. 

TabHost.TabSpec 

spec;

24. 

25. 

声明一个意图,该意图告诉我们,下一个跳转到的activity是ArtistActivity。

26. 

Intent 

intent 

Intent(this, 

ArtistActivity.class);

27. 

/** 

28. 

tabHost.newTabSpec("

artist"

)创建一个标签项,其中artist为它的标签标识符,相当于jsp页面标签的name属性 

29. 

setIndicator("

艺术标签"

resources.getDrawable(R.drawable.ic_tab))设置标签显示文本以及标签上的图标(该图标并不是一个图片,而是一个xml文件哦) 

30. 

setContent(intent)为当前标签指定一个意图 

31. 

tabHost.addTab(spec);

将标签项添加到标签中 

32. 

33. 

spec 

).setIndicator("

 

34. 

resources.getDrawable(R.drawable.ic_tab)).setContent(intent);

35. 

36. 

37. 

intent2 

MusicActivity.class);

38. 

music"

音乐标签"

39. 

resources.getDrawable(R.drawable.ic_tab)).setContent(intent2);

40. 

41. 

42. 

intent3 

SportActivity.class);

43. 

sport"

体育标签"

44. 

resources.getDrawable(R.drawable.ic_tab)).setContent(intent3);

45. 

46. 

47. 

tabHost.setCurrentTabByTag("

设置第一次打开时默认显示的标签,该参数与tabHost.newTabSpec("

)的参数相同 

48. 

tabHost.setCurrentTab

(1);

//设置第一次打开时默认显示的标签,参数代表其添加到标签中的顺序,位置是从0开始的哦。

49. 

50. 

51.} 

AndroidManifest.xml

manifest 

package="

.tagview"

versionCode="

1"

versionName="

uses-sdk 

minSdkVersion="

8"

/>

application 

icon="

@drawable/icon"

label="

@string/app_name"

!

-- 

theme="

@android:

style/Theme.NoTitleBar"

的意思是将系统默认的tag标签去掉,为咱们自己的标签空出位置-->

activity 

name="

.TagView"

intent-filter>

action 

android.intent.action.MAIN"

category 

android.intent.category.LAUNCHER"

/intent-filter>

/activity>

在主配置文件中声明用于标签切换的3个activity,记住此处一定要声明,否则会出错 

ArtistActivity"

里面ArtistActivity前面是否有.都可以,你只需要保证该类是在manifest标签下package属性的包中即可。

-->

MusicActivity"

SportActivity"

/application>

27.<

/manifest>

一切都弄好之后,运行,就出现了最终效果。

这里要注意,main.xml是一直都没有用到的哦。

废话连篇:

其实,利用TabHost布局与ListView有很多相似之处,系统也同样为他们提供了帮助类,TabHost-TabActivity 

ListView-ListActivity.当我们的activity集成了这些类之后,一般在里面我们只需要整理绑定下数据就可以。

再次声明一下,代码中是存在setContentView方法的调用的,只不过因为我们集成了TabActivity,TabActivity的getTabHost方法中已经进行了实现而已。

对用户隐藏了,并不代表没有。

项目中为了简单易懂,我们只是在每个标签的内容部分添加了一个文本。

实际上,我们完全可以在里面添加图片、视频等等。

只要在相应的activity中实现就行了。

我们可以看到,这种方式其实有很好的分层结构,activity与activity之间没有太多耦合。

可能一直到现在,有些朋友对TabActivity和ListActivity这种实现都特别的别扭。

我这里就简单的说一下,实际上这其实是一种设计模式,模板模式。

系统给你提供了一个实现了大部分内容的模板,然后你通过继承模板,去做修改(例如模板中有一个方法没有任何实现,你重写该方法并对其进行具体实现),让其符合你的要求。

这就是模板模式的原理。

<

activity

android:

.splashScreen"

screenOrientation="

portrait"

intent-filter>

actionandroid:

/>

categoryandroid:

activityandroid:

.EcplanningActivity"

/action>

android.intent.category.DEFAULT"

/category>

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1