Android仿新浪微博分页管理界面(3)
程序员文章站
2024-03-31 14:51:16
本文实例为大家分享了android仿新浪微博分页管理界面的具体代码,供大家参考,具体内容如下
多个activity分页管理,为了方便获取上下文,采用继承tabactivi...
本文实例为大家分享了android仿新浪微博分页管理界面的具体代码,供大家参考,具体内容如下
多个activity分页管理,为了方便获取上下文,采用继承tabactivity的传统方法。
大致思路:使用radiogroup点击触发不同的选卡项,选卡项绑定不同的activiity,进而进行分页管理。详解见注解。
/** * 主activity * 通过点击radiogroup下的radiobutton来切换不同界面 * created by d&ll on 2016/7/20. */ public class mainactivity extends tabactivity { //定义tabhost对象 private tabhost tabhost; //定义radiogroup对象 private radiogroup radiogroup; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.tab_layout); initview(); initdata(); } /** * 初始化组件 */ private void initview() { //实例化tabhost,得到tabhost对象 tabhost = gettabhost(); //得到activity的个数 int count = constant.convalue.mtabclassarray.length; for (int i = 0; i < count; i++) { //为每一个tab按钮设置图标、文字和内容 tabspec tabspec = tabhost.newtabspec(constant.convalue.mtextviewarray[i]) .setindicator(constant.convalue.mtextviewarray[i]).setcontent(gettabitemintent(i)); //将tab按钮添加进tab选项卡中 tabhost.addtab(tabspec); } //实例化radiogroup radiogroup = (radiogroup) findviewbyid(r.id.main_radiogroup); } /** * 初始化组件 */ private void initdata() { // 给radiogroup设置监听事件 radiogroup.setoncheckedchangelistener(new oncheckedchangelistener() { public void oncheckedchanged(radiogroup group, int checkedid) { switch (checkedid) { case r.id.radiobutton0: tabhost.setcurrenttabbytag(constant.convalue.mtextviewarray[0]); break; case r.id.radiobutton1: tabhost.setcurrenttabbytag(constant.convalue.mtextviewarray[1]); break; case r.id.radiobutton2: tabhost.setcurrenttabbytag(constant.convalue.mtextviewarray[2]); break; case r.id.radiobutton3: tabhost.setcurrenttabbytag(constant.convalue.mtextviewarray[3]); break; case r.id.radiobutton4: tabhost.setcurrenttabbytag(constant.convalue.mtextviewarray[4]); break; } } }); ((radiobutton) radiogroup.getchildat(0)).toggle(); } /** * 给tab选项卡设置内容(每个内容都是一个activity) */ private intent gettabitemintent(int index) { intent intent = new intent(this, constant.convalue.mtabclassarray[index]); return intent; } }
mainactivity布局文件tab_layout.xml. tabhost布局,添加一个tabwidget用于显示activity,下面是一个radiogroup显示切换activity的按钮菜单。
<?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:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <framelayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="0.0dip" android:layout_weight="1.0"/> <tabwidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0.0" android:visibility="gone"/> <radiogroup android:id="@+id/main_radiogroup" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="@drawable/tab_widget_background" android:gravity="center_vertical" android:orientation="horizontal" android:padding="2dip"> <radiobutton android:id="@+id/radiobutton0" style="@style/tab_item_background" android:drawabletop="@drawable/tab_home" android:text="主页" android:textcolor="#ffffff"/> <radiobutton android:id="@+id/radiobutton1" style="@style/tab_item_background" android:drawabletop="@drawable/tab_msg" android:text="评论" android:textcolor="#ffffff"/> <radiobutton android:id="@+id/radiobutton2" style="@style/tab_item_background" android:drawabletop="@drawable/tab_write" android:text="发微博" android:textcolor="#ffffff"/> <radiobutton android:id="@+id/radiobutton3" style="@style/tab_item_background" android:drawabletop="@drawable/tab_me" android:text="用户信息" android:textcolor="#ffffff"/> <radiobutton android:id="@+id/radiobutton4" style="@style/tab_item_background" android:drawabletop="@drawable/tab_more" android:text="更多" android:textcolor="#ffffff"/> </radiogroup> </linearlayout> </tabhost>
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。