Home > Web Front-end > HTML Tutorial > Use TabHost and RadioButton to achieve page navigation effect

Use TabHost and RadioButton to achieve page navigation effect

PHP中文网
Release: 2017-06-06 16:24:28
Original
1916 people have browsed it

I won’t explain the effect achieved, mainly record the code

First look at the xml layout:

<?xml version="1.0" encoding="UTF-8"?><TabHost xmlns:android="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:background="@drawable/maintab_toolbar_bg"            
android:visibility="gone" />        
<RadioGroup            

android:id="@id/main_radio"            
android:layout_width="fill_parent"            
android:layout_height="wrap_content"          
android:layout_gravity="bottom"         
android:background="@drawable/maintab_toolbar_bg"          
android:gravity="center_vertical"      
android:orientation="horizontal" >         
<RadioButton             
android:id="@id/radio_contact"          
style="@style/main_tab_bottom"        
android:drawableTop="@drawable/main_tab_contact_checked"                
android:text="@string/radio_contact" />            
<RadioButton                
android:id="@id/radio_calllist"                
style="@style/main_tab_bottom"                
android:layout_marginTop="0dip"                
android:layout_marginBottom="0dip"                
android:drawableTop="@drawable/main_tab_calllist_normal"                
android:text="@string/radio_calllist" />            
<RadioButton                
android:id="@id/radio_sms"                
style="@style/main_tab_bottom"                
android:layout_marginTop="0dip"                
android:layout_marginBottom="0dip"                
android:drawableTop="@drawable/main_tab_sms_normal"                
android:text="@string/radio_sms" />            
<RadioButton                
android:id="@id/radio_setting"                
style="@style/main_tab_bottom"                
android:layout_marginTop="0dip"                 
android:layout_marginBottom="0dip"                
android:drawableTop="@drawable/nav_menu_me"                
android:text="@string/radio_setting" />        
</RadioGroup>    
</LinearLayout></TabHost>
Copy after login

2. MainTabActivity

package com.gs.app.main;import android.app.TabActivity;import android.content.Intent;
import android.os.Bundle;import android.view.Window;import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.RadioButton;import android.widget.TabHost;
import com.gs.Appblue.R;import com.gs.app.contact.ContactsListActivity;
import com.gs.app.contact.RecentCallsListActivity;
import com.gs.app.setting.Setting;
import com.gs.app.sms.ActSMSList;
public class MainTabActivity extends TabActivity implementsOnCheckedChangeListener
{private TabHost mTabHost;private Intent mContactIntent;private Intent mCallLogIntent;private Intent mSmsIntent;
private Intent mSetIntent;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.main_tab);
this.mContactIntent = new Intent(this, ContactsListActivity.class);
this.mCallLogIntent = new Intent(this, RecentCallsListActivity.class);
this.mSmsIntent = new Intent(this, ActSMSList.class);
this.mSetIntent = new Intent(this, Setting.class);
((RadioButton) findViewById(R.id.radio_contact)).setOnCheckedChangeListener(this);
((RadioButton) findViewById(R.id.radio_calllist)).setOnCheckedChangeListener(this);
((RadioButton) findViewById(R.id.radio_sms)).setOnCheckedChangeListener(this);
((RadioButton) findViewById(R.id.radio_setting)).setOnCheckedChangeListener(this);
setupIntent();}private void setupIntent() {this.mTabHost = getTabHost();
TabHost localTabHost = this.mTabHost;
localTabHost.addTab(buildTabSpec("A_TAB", R.string.radio_contact,R.drawable.main_tab_contact_normal, this.mContactIntent));localTabHost.addTab(buildTabSpec("B_TAB", R.string.radio_calllist,R.drawable.main_tab_calllist_normal, 
this.mCallLogIntent));localTabHost.addTab(buildTabSpec("C_TAB", R.string.radio_sms,R.drawable.main_tab_sms_normal, this.mSmsIntent));localTabHost.addTab(buildTabSpec("D_TAB", R.string.radio_setting,R.drawable.main_tab_setting_normal, this.mSetIntent));
localTabHost.setCurrentTab(0);}@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if (isChecked) {switch (buttonView.getId()) {case R.id.radio_contact:this.mTabHost.setCurrentTabByTag("A_TAB");
break;case R.id.radio_calllist:this.mTabHost.setCurrentTabByTag("B_TAB");break;case R.id.radio_sms:this.mTabHost.setCurrentTabByTag("C_TAB");break;case R.id.radio_setting:this.mTabHost.setCurrentTabByTag("D_TAB");break;}}}private TabHost.TabSpec buildTabSpec(String tag, int resLabel, int resIcon,final Intent content) 
{return this.mTabHost.newTabSpec(tag).setIndicator(getString(resLabel),getResources().getDrawable(resIcon)).setContent(content);}}
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template