如图是效果图
当 点击下面 不同 的按钮 进入 不同的界面
其中 要一个 主布局当做容器 , 和3个不同的 布局来对应下面的3个按钮界面
主程序的 代码和布局如下
1 import android.support.v4.app.Fragment; 2 import android.support.v4.app.FragmentTransaction; 3 import android.view.View; 4 import android.widget.Button; 5 6 import com.example.huanshop.activity.R; 7 import com.example.huanshop.activity.main.MyShopFragment; 8 import com.example.huanshop.base.BaseFragmentActivity; 9 10 public class ProducteTimeLimit extends BaseFragmentActivity { 11 private int index; 12 // 当前fragment的index 13 private int currentTabIndex; 14 private TimeLimitShopFragment timeLimitShop; 15 private TimeLimitQiangShop timeLimitQiangShop; 16 private MyShopFragment myShopFragment; 17 private Fragment[] fragments; 18 private Button[] btnTabs; 19 20 @Override 21 protected void setContentView() { 22 // TODO Auto-generated method stub 23 setContentView(R.layout.timeshop); 24 } 25 26 @Override 27 protected void setFindViewById() { 28 // TODO Auto-generated method stub 29 btnTabs = new Button[3]; 30 btnTabs[0] = (Button) findViewById(R.id.timelimited); 31 btnTabs[1] = (Button) findViewById(R.id.lastshop); 32 btnTabs[2] = (Button) findViewById(R.id.brandshop); 33 // 把第一个设置成默认选中状态 34 btnTabs[0].setSelected(true); 35 36 } 37 38 @Override 39 protected void setControll() { 40 // TODO Auto-generated method stub 41 timeLimitShop = new TimeLimitShopFragment(); 42 timeLimitQiangShop = new TimeLimitQiangShop(); 43 myShopFragment = new MyShopFragment(); 44 fragments = new Fragment[] { timeLimitShop, timeLimitQiangShop, 45 myShopFragment }; 46 // 添加显示第一个fragment 47 getSupportFragmentManager().beginTransaction() 48 .add(R.id.timeshopfragment, timeLimitShop) 49 .add(R.id.timeshopfragment, timeLimitQiangShop) 50 .add(R.id.timeshopfragment, myShopFragment) 51 .hide(timeLimitQiangShop).hide(myShopFragment) 52 .hide(myShopFragment).show(timeLimitShop).commit(); 53 } 54 55 @Override 56 protected void setListener() { 57 // TODO Auto-generated method stub 58 59 } 60 61 public void onTabClicked(View view) { 62 switch (view.getId()) { 63 case R.id.timelimited: 64 index = 0; 65 break; 66 case R.id.lastshop: 67 index = 1; 68 break; 69 case R.id.brandshop: 70 index = 2; 71 break; 72 } 73 if (currentTabIndex != 0) { 74 btnTabs[0].setSelected(false); 75 } 76 if (currentTabIndex != index) { 77 FragmentTransaction trx = getSupportFragmentManager() 78 .beginTransaction(); 79 trx.hide(fragments[currentTabIndex]); 80 81 if (!fragments[index].isAdded()) { 82 trx.add(R.id.timeshopfragment, fragments[index]); 83 } 84 trx.show(fragments[index]).commit(); 85 } 86 btnTabs[currentTabIndex].setSelected(false); 87 // 把当前tab设为选中状态 88 btnTabs[index].setSelected(true); 89 currentTabIndex = index; 90 } 91 92 }
主代码的布局文件
1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 style="@style/all_layout_style" > 4 5 <LinearLayout 6 android:id="@+id/timebtton1" 7 android:layout_width="match_parent" 8 android:layout_height="60dp" 9 android:layout_alignParentBottom="true" 10 android:background="@color/bottom_bar_normal_bg" 11 android:gravity="center_vertical" 12 android:orientation="vertical" > 13 14 <View 15 android:layout_width="match_parent" 16 android:layout_height="1dp" 17 android:background="#999999" /> 18 19 <LinearLayout 20 android:id="@+id/main_bottom" 21 android:layout_width="match_parent" 22 android:layout_height="match_parent" 23 android:background="@color/bottom_bar_normal_bg" 24 android:gravity="center_vertical" 25 android:orientation="horizontal" > 26 27 <RelativeLayout 28 android:layout_width="0dp" 29 android:layout_height="match_parent" 30 android:layout_weight="1" > 31 32 <Button 33 style="@style/main_btn" 34 android:id="@+id/timelimited" 35 android:clickable="true" 36 android:drawableTop="@drawable/tab_home_bg" 37 android:text="限时购" /> 38 </RelativeLayout> 39 40 <RelativeLayout 41 android:layout_width="0dp" 42 android:layout_height="match_parent" 43 android:layout_weight="1" > 44 45 <Button 46 style="@style/main_btn" 47 android:id="@+id/lastshop" 48 android:drawableTop="@drawable/tab_classify_bg" 49 android:text="最后疯抢" /> 50 </RelativeLayout> 51 52 <RelativeLayout 53 android:layout_width="0dp" 54 android:layout_height="match_parent" 55 android:layout_weight="1" > 56 57 <Button 58 style="@style/main_btn" 59 android:id="@+id/brandshop" 60 android:drawableTop="@drawable/tab_classify_bg" 61 android:text="品牌促销" /> 62 </RelativeLayout> 63 </LinearLayout> 64 </LinearLayout> 65 <!-- --> 66 67 <RelativeLayout 68 android:id="@+id/timeshopfragment" 69 android:layout_width="match_parent" 70 android:layout_height="match_parent" 71 android:layout_above="@id/timebtton1" > 72 </RelativeLayout> 73 74 </RelativeLayout>
其中3个fragment这里值给出一个

1 import java.util.List; 2 3 import com.android.http.LoadControler; 4 import com.android.http.RequestManager; 5 import com.android.http.RequestManager.RequestListener; 6 import com.example.huanshop.activity.R; 7 import com.example.huanshop.activity.main.HomeFragment; 8 import com.example.huanshop.adapter.ProducteTimeAdapter; 9 import com.example.huanshop.entity.Product; 10 import com.example.huanshop.util.HttpUtil; 11 import com.example.huanshop.widget.MyListView; 12 import com.google.gson.Gson; 13 import com.google.gson.reflect.TypeToken; 14 import com.nostra13.universalimageloader.core.ImageLoader; 15 import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; 16 17 import android.content.Intent; 18 import android.os.Bundle; 19 import android.support.v4.app.Fragment; 20 import android.view.LayoutInflater; 21 import android.view.View; 22 import android.view.ViewGroup; 23 import android.widget.AdapterView; 24 import android.widget.AdapterView.OnItemClickListener; 25 import android.widget.Toast; 26 27 public class TimeLimitQiangShop extends Fragment implements RequestListener { 28 private MyListView listView; 29 private ProducteTimeAdapter listAdapter; 30 private List<Product> products; 31 private LoadControler load; 32 private ImageLoader loader; 33 private String urlString = HttpUtil.BASEURL + "Product/GetByIsSpecial/4"; 34 35 @Override 36 public View onCreateView(LayoutInflater inflater, ViewGroup container, 37 Bundle savedInstanceState) { 38 // TODO Auto-generated method stub 39 return inflater.inflate(R.layout.producttimeqiang, container, false); 40 } 41 42 @Override 43 public void onActivityCreated(Bundle savedInstanceState) { 44 super.onActivityCreated(savedInstanceState); 45 setFindViewById(); 46 setListener(); 47 setControll(); 48 } 49 50 private void setFindViewById() { 51 // TODO Auto-generated method stub 52 loader = ImageLoader.getInstance(); 53 loader.init(ImageLoaderConfiguration.createDefault(getActivity())); 54 listView = (MyListView) getActivity().findViewById(R.id.timeqiang); 55 } 56 57 private void setControll() { 58 // TODO Auto-generated method stub 59 load = RequestManager.getInstance().get(urlString, this, 2); 60 } 61 62 private void setListener() { 63 // TODO Auto-generated method stub 64 listView.setOnItemClickListener(new OnItemClickListener() { 65 66 @Override 67 public void onItemClick(AdapterView<?> parent, View view, 68 int position, long id) { 69 // TODO Auto-generated method stub 70 HomeFragment.kucun = products.get(position).getKucun() + ""; 71 HomeFragment.Title = products.get(position).getTitle(); 72 HomeFragment.SmallPic = products.get(position).getSmallPic(); 73 HomeFragment.Contens = products.get(position).getContens(); 74 HomeFragment.Price = products.get(position).getPrice() + ""; 75 HomeFragment.SalePrice = products.get(position).getSalePrice() 76 + ""; 77 HomeFragment.BuyCount = products.get(position).getBuyCount() 78 + ""; 79 HomeFragment.producteId = products.get(position).getId() + ""; 80 Intent intent = new Intent(getActivity(), 81 ProducteDetailsActivity.class); 82 // intent.putExtra("positon", position); 83 startActivity(intent); 84 } 85 }); 86 } 87 88 @Override 89 public void onError(String arg0, String arg1, int arg2) { 90 // TODO Auto-generated method stub 91 92 } 93 94 @Override 95 public void onRequest() { 96 // TODO Auto-generated method stub 97 98 } 99 100 @Override 101 public void onSuccess(String arg0, String arg1, int arg2) { 102 // TODO Auto-generated method stub 103 switch (arg2) { 104 case 2: 105 products = new Gson().fromJson(arg0, 106 new TypeToken<List<Product>>() { 107 }.getType()); 108 if (products.size() == 0) { 109 Toast.makeText(getActivity(), "没有产品", 1000).show(); 110 } else { 111 listAdapter = new ProducteTimeAdapter(getActivity(), products); 112 listView.setAdapter(listAdapter); 113 listAdapter.notifyDataSetChanged(); 114 } 115 } 116 } 117 }