您的位置:首页 > 其它

使用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);}
}
}
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: