使用TabView和ListView构建游戏中的排行榜
2014-04-01 10:44
423 查看
1. 写出主界面的xml
<TabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/pvp_rank_bluebar_up"
android:layout_marginLeft="195dp"
android:layout_marginTop="10dp"
android:layout_above="@+id/pvp_rank_bluebar_down">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tabStripEnabled="false" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
</TabHost>
2. 分别写出四个TabView要展示的界面的xml
<ListView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/pvp_rank_losers_list" />
3. 写出四个xml对应的activity用于显示
1). 定义ListView
2). 定义ArrayList<HashMap<String, Object>>
3).进行加载
4).list进行设置Adapter
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pvp_rank_week);
ListView list = (ListView) findViewById(R.id.pvp_rank_week_list);
ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();
for(int i=0;i<20;i++){
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.pvp_game_ic_girl);
map.put("ItemTitle", "');
listItem.add(map);
}
SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,R.drawable.rank_list_items, new String[] {"ItemImage","ItemTitle"}, new int[] {R.id.ItemImage,R.id.ItemTitle} );
list.setAdapter(listItemAdapter); }
4. 写出主界面的四个activity:使用TabHost.TabSpec spec定义不同Tab,用TabHost tabHost去逐一加载
TabWidget tabWidget;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pvp_rank);
Resources res = getResources();
final TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, PVPGameRankWeek.class);
spec = tabHost.newTabSpec("week").setIndicator("").setContent(intent);tabHost.addTab(spec);
intent = new Intent().setClass(this, PVPGameRankWeek.class);
intent = new Intent().setClass(this, PVPGameRankTotal.class);
spec = tabHost.newTabSpec("total").setIndicator("").setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, PVPGameRankLosers.class);
spec = tabHost.newTabSpec("losers").setIndicator("").setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, PVPGameRankMe.class);
spec = tabHost.newTabSpec("me").setIndicator("").setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(1);
View v;
tabWidget = tabHost.getTabWidget();
for (int i = 0; i < tabWidget.getChildCount(); i++) {
v = tabWidget.getChildAt(i);
v.setBackgroundResource(R.drawable.tab_rank_week_unpres);
TextView textView = (TextView) v.findViewById(android.R.id.title);
textView.setTextColor(Color.TRANSPARENT);}
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
View v = tabHost.getTabWidget().getChildAt(i);
setBackgroundResource(R.drawable.tab_rank_week_unpres);}
}
}
});
}
<TabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/pvp_rank_bluebar_up"
android:layout_marginLeft="195dp"
android:layout_marginTop="10dp"
android:layout_above="@+id/pvp_rank_bluebar_down">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tabStripEnabled="false" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
</TabHost>
2. 分别写出四个TabView要展示的界面的xml
<ListView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/pvp_rank_losers_list" />
3. 写出四个xml对应的activity用于显示
1). 定义ListView
2). 定义ArrayList<HashMap<String, Object>>
3).进行加载
4).list进行设置Adapter
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pvp_rank_week);
ListView list = (ListView) findViewById(R.id.pvp_rank_week_list);
ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();
for(int i=0;i<20;i++){
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.pvp_game_ic_girl);
map.put("ItemTitle", "');
listItem.add(map);
}
SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,R.drawable.rank_list_items, new String[] {"ItemImage","ItemTitle"}, new int[] {R.id.ItemImage,R.id.ItemTitle} );
list.setAdapter(listItemAdapter); }
4. 写出主界面的四个activity:使用TabHost.TabSpec spec定义不同Tab,用TabHost tabHost去逐一加载
TabWidget tabWidget;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pvp_rank);
Resources res = getResources();
final TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, PVPGameRankWeek.class);
spec = tabHost.newTabSpec("week").setIndicator("").setContent(intent);tabHost.addTab(spec);
intent = new Intent().setClass(this, PVPGameRankWeek.class);
intent = new Intent().setClass(this, PVPGameRankTotal.class);
spec = tabHost.newTabSpec("total").setIndicator("").setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, PVPGameRankLosers.class);
spec = tabHost.newTabSpec("losers").setIndicator("").setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, PVPGameRankMe.class);
spec = tabHost.newTabSpec("me").setIndicator("").setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(1);
View v;
tabWidget = tabHost.getTabWidget();
for (int i = 0; i < tabWidget.getChildCount(); i++) {
v = tabWidget.getChildAt(i);
v.setBackgroundResource(R.drawable.tab_rank_week_unpres);
TextView textView = (TextView) v.findViewById(android.R.id.title);
textView.setTextColor(Color.TRANSPARENT);}
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
View v = tabHost.getTabWidget().getChildAt(i);
setBackgroundResource(R.drawable.tab_rank_week_unpres);}
}
}
});
}
相关文章推荐
- Hibernate中Criteria的完整用法
- 正则表达式之语法规则
- UVa 706 LC-Display
- [ACM] poj 3128 Leonardo's Notebook (置换群,循环节)
- orcale 存储过程分页时间戳
- define中的三个特殊符号:#,##,#@
- 修复文章···
- 张广慧:云计算对游戏开发者的价值
- 我要学算法
- 索尼相机2014年或将要点开发高端机型
- EXTJS入门教程及其框架搭建
- 深度技术32位Win7系统Ghost版2014年
- [ACM] poj 3128 Leonardo's Notebook (置换群,循环节)
- 修复文章···
- [ACM] poj 3128 Leonardo's Notebook (置换群,循环节)
- 使用HtmlAgilityPack抓取网页数据
- CSS命名规范(规则)
- Discuz!系统常用函数及变量
- tomcat(解压版)一台机子上装多个服务
- Python的Pexpect详解[类似shell与ftp/ssh等命令交互]