在public void onCheckedChanged(RadioGroup radioGroup, int CheckedId) 这个方法中还需要重新生成页面就行了
package com.example.servlet_mobile_2;
import java.lang.reflect.Method;
import java.util.ArrayList;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;
import com.example.servlet_mobile_2.ChatsFragment;
import com.example.servlet_mobile_2.ContactsFragment;
import com.example.servlet_mobile_2.DiscoverFragment;
import com.example.servlet_mobile_2.MeFragment;
public class MainActivity extends FragmentActivity implements OnCheckedChangeListener
{
public static String ipString="192.168.0.148";
//ViewPager控件
private ViewPager main_viewPager ;
//RadioGroup控件
private RadioGroup main_tab_RadioGroup ;
//RadioButton控件
private RadioButton radio_chats , radio_contacts , radio_discover , radio_me ;
//类型为Fragment的动态数组
private ArrayList<Fragment> fragmentList ;
private View view1, view2, view3, view4;
private Button btn2_1;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//界面初始函数,用来获取定义的各控件对应的ID
InitView();
//ViewPager初始化函数
InitViewPager();
}onCreateonCreateonCreateonCreateonCreateonCreate
public void InitView()
{
main_tab_RadioGroup = (RadioGroup) findViewById(R.id.main_tab_RadioGroup) ;
radio_chats = (RadioButton) findViewById(R.id.radio_chats) ;
radio_contacts = (RadioButton) findViewById(R.id.radio_contacts) ;
radio_discover = (RadioButton) findViewById(R.id.radio_discover) ;
radio_me = (RadioButton) findViewById(R.id.radio_me) ;
main_tab_RadioGroup.setOnCheckedChangeListener(this);
}
public void InitViewPager()
{
main_viewPager = (ViewPager) findViewById(R.id.main_ViewPager);
fragmentList = new ArrayList<Fragment>() ;
Fragment chatsFragment = new ChatsFragment() ;
Fragment contactsFragment = new ContactsFragment();
Fragment discoverFragment = new DiscoverFragment();
Fragment meFragment = new MeFragment();
LayoutInflater inflater = getLayoutInflater();
view1 = inflater.inflate(R.layout.chats_fragment, null);
//将各Fragment加入数组中
fragmentList.add(chatsFragment);
fragmentList.add(contactsFragment);
fragmentList.add(discoverFragment);
fragmentList.add(meFragment);
//设置ViewPager的设配器
MyAdapter myAdapter = new MyAdapter(getSupportFragmentManager() , fragmentList);
****************************
myAdapter.notifyDataSetChanged();
main_viewPager.setAdapter(myAdapter);
//当前为第一个页面
main_viewPager.setCurrentItem(0);
//ViewPager的页面改变监听器
main_viewPager.setOnPageChangeListener(new MyListner());
}
public class MyAdapter extends FragmentPagerAdapter
{
ArrayList<Fragment> list ;
public MyAdapter(FragmentManager fm , ArrayList<Fragment> list)
{
super(fm);
this.list = list ;
}
@Override
public Fragment getItem(int arg0) {
return list.get(arg0);
}
@Override
public int getCount() {
return list.size();
}
}
/页面变化监听器
public class MyListner implements OnPageChangeListener
{
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int arg0) {
//获取当前页面用于改变对应RadioButton的状态
int current = main_viewPager.getCurrentItem() ;
switch(current)
{
case 0:
///RadioGroup.check(int id)
//id the unique id of the radio button to select in this group
main_tab_RadioGroup.check(R.id.radio_chats);
break;
case 1:
main_tab_RadioGroup.check(R.id.radio_contacts);
break;
case 2:
main_tab_RadioGroup.check(R.id.radio_discover);
break;
case 3:
main_tab_RadioGroup.check(R.id.radio_me);
break;
}
}
}
@Override
public void onCheckedChanged(RadioGroup radioGroup, int CheckedId)
{
//获取当前被选中的RadioButton的ID,用于改变ViewPager的当前页
int current=0;
switch(CheckedId)
{
case R.id.radio_chats:
current = 0 ;
break ;
case R.id.radio_contacts:
current = 1 ;
break;
case R.id.radio_discover:
current = 2 ;
break;
case R.id.radio_me:
current = 3 ;
break ;
}
if(main_viewPager.getCurrentItem() != current)
{
InitView();这个方法中还需要重新生成页面就行了 ,很重要!!!!!!!!!!!!!!!!
//ViewPager初始化函数
InitViewPager();///这个方法中还需要重新生成页面就行了, 很重要!!!!!!!!!!!!!!!!
main_viewPager.setCurrentItem(current);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.main, menu) ;
return true;
}
@Override
public boolean onMenuOpened(int featureId , Menu menu)
{
if(featureId == Window.FEATURE_ACTION_BAR && menu != null)
{
if(menu.getClass().getSimpleName().equals("MenuBuilder"))
{
try {
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return super.onMenuOpened(featureId, menu) ;
}
public static String getIpString() {
return ipString;
}
public static void setIpString(String ipString) {
MainActivity.ipString = ipString;
}
}