android学习笔记(九)

TabActivity
    我不太喜欢这个TabActivity(以下简称Tab)。因为写这个Activity的时候,会把代码弄的很乱。至少android的例子中,处理这个Tab很多东西都不是很OO。所以如果你几个tab之间的逻辑关系简单还好。复杂的应用,用起来就觉得很不舒服。至少是我写的那个练手的app。感觉代码很乱。
    但是这个Tab还是有其特点的。最大的就是不用考虑activity之间对象的传递。因为android在activity之间传递不是Serializable的对象时候很麻烦,比如说是一个list。如果把两个activity合并成一个Tab,而正好有个list需要传递的话,是一件很惬意的事情。而且有些应用有两个界面,难分伯仲的时候,比较建议用Tab。这一点我不敢肯定。我的应用有两个主要界面。一个是产生一条记录。另一个是看产生记录的列表。由于app上面挂着广告。我用Tab的时候。impression至少200+。我三个礼拜没有更新,还是能够维持。但是由于代码混乱。我改成了两个activity的时候,impression就一直100+,很少到200。不过也不敢肯定。因为上周改回了tab,貌似也没见回升。
    不过我自己思考了一下。觉得在产生两个主要界面的情况下。Tab能够给用户以直观的感受。如果你分成两个Activity,之间联系就不会有那么强烈。比方说我用menu来转换。自己用过。感觉没有用Tab的时候清晰。

Tab的基本TabHost
     TabHost可以说是最基本的一个操作Tab的一个类。其中提供比较很多操作activity的方法。你往Tabactiviy上面加入Tab等一些操作。都是需要通过它,获得也是它。
     加Tab
      mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator(Tab1Name).setContent(R.id.Lottery));
 
     获取当前Tab
     int TabIndex = mTabHost.getCurrentTab()
 
    这个是我觉得判断当前Tab最方便的办法。当然,还有其他两个方法。一个是获得当前view。另一个是当前的tagname。相对来说这个方法最便当。因为判断的是基本数据类型。直接用==就ok了。当然这个方法还是有着自己比较难以处理的地方。就是Tab的顺序和代码耦合。当改变tab顺序的时候,就必须要改变代码。

Menu处理
   当使用Tab的时候,很容易产生的一个问题就是不同的Tab要对应不同的Menu。我的做法可能有点笨拙。就是在onCreateOptionsMenu(Menu menu)把所有menu的visible设为false.然后在onPrepareOptionsMenu(Menu menu)中,判断currentTab。然后把需要的menu的visiable设成true.
     
不解
    就是设定背景色。到目前为止都不好设定Tab的背景色。如果说设定的Tab的layout不能称满真个屏幕的话,那么背景色就不会称满这个屏幕。这个是我技术不够,所以才碰到的问题吧。希望高人指教。

你可能感兴趣的:(android,OO)