Viewpaper Fragment RadioButton . 仿QQ主界面
layout_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:layout_weight="1" >
</android.support.v4.view.ViewPager>
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#FFBBCCFF"
>
<RadioButton
android:id="@+id/radio0"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@drawable/icon_tabbar_btn"
android:button="@null"
android:checked="true"
android:gravity="center"
android:background="@android:color/transparent"
android:text="R1" />
<RadioButton
android:id="@+id/radio1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@drawable/icon_tabbar_btn"
android:button="@null"
android:gravity="center"
android:background="@android:color/transparent"
android:text="R2" />
<RadioButton
android:id="@+id/radio2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@drawable/icon_tabbar_btn"
android:gravity="center"
android:button="@null"
android:background="@android:color/transparent"
android:text="R3" />
<RadioButton
android:id="@+id/radio3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@drawable/icon_tabbar_btn"
android:textColor="@drawable/color_tarbar_btn"
android:button="@null"
android:gravity="center"
android:background="@android:color/transparent"
android:text="R4" />
</RadioGroup>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1sfdsf" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
icon_tabbar_btn.xml
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:drawable/btn_default" android:state_pressed="true"/>
<item android:drawable="@android:drawable/btn_default" android:state_focused="true"/>
<item android:drawable="@android:drawable/btn_star"/>
</selector>
color_tarbar_btn.xml
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#FF6677AA" android:state_checked="true"/>
<item android:color="#FF6677AA"/>
</selector>
MainActivity.java
package com.example.viewpager1;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
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.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
public class MainActivity extends FragmentActivity {
protected Context mContext;
private RadioGroup radioGroup1;
private ViewPager vp;
private FragmentManager fragementManager;
private int mCurrentFragment;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
mContext = this.getApplicationContext();
fragementManager = getSupportFragmentManager();
vp = (ViewPager) findViewById(R.id.viewPager);
fragmentList.add(new OneFragment());
fragmentList.add(new OneFragment2());
fragmentList.add(new OneFragment());
fragmentList.add(new OneFragment());
/*
* titleList.add("title 1 "); titleList.add("title 2 ");
* titleList.add("title 3 "); titleList.add("title 4 ");
* vp.setAdapter(new myPagerAdapter(getSupportFragmentManager(),
* fragmentList, titleList));
*/
vp.setAdapter(new myPagerAdapter(getSupportFragmentManager(),fragmentList));
vp.setOnPageChangeListener(onPageChangeListener);
vp.setCurrentItem(mCurrentFragment);
radioGroup1 = (RadioGroup) findViewById(R.id.radioGroup1);
radioGroup1.setOnCheckedChangeListener(onCheckedChangeListener);
((RadioButton) radioGroup1.getChildAt(0)).setChecked(true);
}
List<Fragment> fragmentList = new ArrayList<Fragment>();
List<String> titleList = new ArrayList<String>();
class myPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
private List<String> titleList = null;
public myPagerAdapter(FragmentManager fm, List<Fragment> fragmentList,
List<String> titleList) {
super(fm);
this.fragmentList = fragmentList;
this.titleList = titleList;
}
public myPagerAdapter(FragmentManager fm, List<Fragment> fragmentList) {
super(fm);
this.fragmentList = fragmentList;
}
@Override
public Fragment getItem(int arg0) {
return (fragmentList == null || fragmentList.size() == 0) ? null
: fragmentList.get(arg0);
}
@Override
public CharSequence getPageTitle(int position) {
if (titleList != null)
return (titleList.size() > position) ? titleList.get(position)
: "";
else
return "";
}
@Override
public int getCount() {
return fragmentList == null ? 0 : fragmentList.size();
}
}
private OnPageChangeListener onPageChangeListener = new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
mCurrentFragment = arg0;
((RadioButton) radioGroup1.getChildAt(arg0)).setChecked(true);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
};
private OnCheckedChangeListener onCheckedChangeListener = new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
int checkedItem = 0;
switch (checkedId) {
case R.id.radio0:
checkedItem = 0;
break;
case R.id.radio1:
checkedItem = 1;
break;
case R.id.radio2:
checkedItem = 2;
break;
case R.id.radio3:
checkedItem = 3;
break;
}
vp.setCurrentItem(checkedItem);
mCurrentFragment = checkedItem;
}
};
}
OneFragment.java
package com.example.viewpager1; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class OneFragment extends Fragment { private Context mContext; private TextView textView1; private View mView; private LayoutInflater mInflater; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub mView = inflater.inflate(R.layout.layout_one, null); mInflater=inflater; mContext = getActivity().getApplicationContext();
return mView;}}textView1=(TextView) mView.findViewById(R.id.textView1); textView1.setText("111111111"); //Activity thisZ=getActivity();