Fragment的微信界面源代码

  1. Fragment的微信界面源代码
  2. 完成上述的网页,并且能够左右切换
  3. 注:
  4. 一下的带代码只能够在Android的3.0以上的版本中使用。
  5. 这是java文件的源代码
  6. /*
  7. *作者浅淡~夏天
  8. *Time:2014/12/14
  9. *微信界面
  10. */
  11. package com.android.xiong.fragmentnavigation2;  
  12.   
  13. import android.app.Activity;  
  14. import android.app.Fragment;  
  15. import android.app.FragmentManager;  
  16. import android.app.FragmentTransaction;  
  17. import android.os.Bundle;  
  18. import android.view.KeyEvent;  
  19. import android.view.Menu;  
  20. import android.view.View;  
  21. import android.view.View.OnClickListener;  
  22. import android.widget.RadioButton;  
  23. import android.widget.Toast;  
  24.   
  25. public class MainActivity extends Activity {  
  26.   
  27.     private RadioButton ra_weixin_bt, ra_tongxunlu_bt, ra_faxian_bt, ra_wo_bt;  
  28.     private Fragment talkFragment, addressFragment, findFragment, meFragment;  
  29.     FragmentManager fgManager;  
  30.     private int i = 0;  
  31.   
  32.     @Override  
  33.     protected void onCreate(Bundle savedInstanceState) {  
  34.         super.onCreate(savedInstanceState);  
  35.         setContentView(R.layout.activity_main);  
  36.         fgManager = getFragmentManager();  
  37.         init();  
  38.         ra_weixin_bt.setOnClickListener(new OnClickListener() {  
  39.             @Override  
  40.             public void onClick(View v) {  
  41.                 talkFragment = new WeChatTalkFragment();  
  42.                 changeFrament(talkFragment, null, "talkFragment");  
  43.                 changeRadioButtonImage(v.getId());  
  44.             }  
  45.         });  
  46.         ra_tongxunlu_bt.setOnClickListener(new OnClickListener() {  
  47.   
  48.             @Override  
  49.             public void onClick(View v) {  
  50.                 addressFragment = new AddressFragment();  
  51.                 changeFrament(addressFragment, null, "addressFragment");  
  52.                 changeRadioButtonImage(v.getId());  
  53.             }  
  54.         });  
  55.         ra_faxian_bt.setOnClickListener(new OnClickListener() {  
  56.   
  57.             @Override  
  58.             public void onClick(View v) {  
  59.                 findFragment = new FindFragment();  
  60.                 changeFrament(findFragment, null, "findFragment");  
  61.                 changeRadioButtonImage(v.getId());  
  62.   
  63.             }  
  64.         });  
  65.         ra_wo_bt.setOnClickListener(new OnClickListener() {  
  66.   
  67.             @Override  
  68.             public void onClick(View v) {  
  69.                 meFragment = new MeFragment();  
  70.                 changeFrament(meFragment, null, "meFragment");  
  71.                 changeRadioButtonImage(v.getId());  
  72.             }  
  73.         });  
  74.     }  
  75.   
  76.     // 初始化信息  
  77.     public void init() {  
  78.         ra_weixin_bt = (RadioButton) findViewById(R.id.ra_weixin_bt);  
  79.         ra_tongxunlu_bt = (RadioButton) findViewById(R.id.ra_tongxunlu_bt);  
  80.         ra_faxian_bt = (RadioButton) findViewById(R.id.ra_faxian_bt);  
  81.         ra_wo_bt = (RadioButton) findViewById(R.id.ra_wo_bt);  
  82.         talkFragment = new WeChatTalkFragment();  
  83.         addressFragment = new AddressFragment();  
  84.         findFragment = new FindFragment();  
  85.         meFragment = new MeFragment();  
  86.         changeFrament(talkFragment, null, "talkFragment");  
  87.         // 更换 android:drawableTop图pain资源  
  88.         ra_weixin_bt.setCompoundDrawablesWithIntrinsicBounds(0,  
  89.                 R.drawable.n_talk_l, 0, 0);  
  90.     }  
  91.   
  92.     // 切界面  
  93.     public void changeFrament(Fragment fragment, Bundle bundle, String tag) {  
  94.   
  95.         for (int i = 0, count = fgManager.getBackStackEntryCount(); i < count; i++) {  
  96.             fgManager.popBackStack();  
  97.         }  
  98.         FragmentTransaction fg = fgManager.beginTransaction();  
  99.         fragment.setArguments(bundle);  
  100.         fg.add(R.id.fragmentRoot, fragment, tag);  
  101.         fg.addToBackStack(tag);  
  102.         fg.commit();  
  103.   
  104.     }  
  105.   
  106.     // 更换RadioButton图片  
  107.     public void changeRadioButtonImage(int btids) {  
  108.         int[] imageh = { R.drawable.n_address_h, R.drawable.n_find_h,  
  109.                 R.drawable.n_me_h, R.drawable.n_talk_h };  
  110.         int[] imagel = { R.drawable.n_address_l, R.drawable.n_find_l,  
  111.                 R.drawable.n_me_l, R.drawable.n_talk_l };  
  112.         int[] rabt = { R.id.ra_tongxunlu_bt, R.id.ra_faxian_bt, R.id.ra_wo_bt,  
  113.                 R.id.ra_weixin_bt };  
  114.         switch (btids) {  
  115.         case R.id.ra_tongxunlu_bt:  
  116.             changeImage(imageh, imagel, rabt, 0);  
  117.             break;  
  118.         case R.id.ra_faxian_bt:  
  119.             changeImage(imageh, imagel, rabt, 1);  
  120.             break;  
  121.         case R.id.ra_wo_bt:  
  122.             changeImage(imageh, imagel, rabt, 2);  
  123.             break;  
  124.         case R.id.ra_weixin_bt:  
  125.             changeImage(imageh, imagel, rabt, 3);  
  126.             break;  
  127.         default:  
  128.             break;  
  129.         }  
  130.     }  
  131.   
  132.     @Override  
  133.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  134.         if (keyCode == KeyEvent.KEYCODE_BACK) {  
  135.             if (i == 0) {  
  136.                 Toast.makeText(this, "再点击一次将退出程序", Toast.LENGTH_SHORT).show();  
  137.                 i++;  
  138.             } else {  
  139.                 this.finish();  
  140.             }  
  141.             return false;  
  142.         }  
  143.         return super.onKeyDown(keyCode, event);  
  144.     }  
  145.   
  146.     public void changeImage(int[] image1, int[] image2, int[] rabtid, int index) {  
  147.         for (int i = 0; i < image1.length; i++) {  
  148.             if (i != index) {  
  149.                 ((RadioButton) findViewById(rabtid[i]))  
  150.                         .setCompoundDrawablesWithIntrinsicBounds(0, image1[i],  
  151.                                 0, 0);  
  152.             } else {  
  153.                 ((RadioButton) findViewById(rabtid[i]))  
  154.                         .setCompoundDrawablesWithIntrinsicBounds(0, image2[i],  
  155.                                 0, 0);  
  156.             }  
  157.         }  
  158.     }  
  159.   
  160.     @Override  
  161.     public boolean onCreateOptionsMenu(Menu menu) {  
  162.         // Inflate the menu; this adds items to the action bar if it is present.  
  163.         getMenuInflater().inflate(R.menu.main, menu);  
  164.         return true;  
  165.     }  
  166.   
  167. }  
  168. 一下是XML文件:
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:background="#dbdbdb"  
  6.     tools:context=".MainActivity" >  
  7.   
  8.     <LinearLayout  
  9.         android:id="@+id/fragmentRoot"  
  10.         android:layout_width="match_parent"  
  11.         android:layout_height="match_parent"  
  12.         android:orientation="vertical" >  
  13.     </LinearLayout>  
  14.   
  15.     <LinearLayout  
  16.         android:id="@+id/bottomList"  
  17.         android:layout_width="match_parent"  
  18.         android:layout_height="wrap_content"  
  19.         android:layout_alignParentBottom="true"  
  20.         android:background="@android:color/black"  
  21.         android:orientation="horizontal" >  
  22.   
  23.         <LinearLayout style="@style/linaer_bottom" >  
  24.   
  25.             <RadioButton  
  26.                 android:id="@+id/ra_weixin_bt"  
  27.                 style="@style/rbt_bottom"  
  28.                 android:drawableTop="@drawable/n_talk_h"  
  29.                 android:text="@string/weixin" />  
  30.         </LinearLayout>  
  31.   
  32.         <LinearLayout style="@style/linaer_bottom" >  
  33.   
  34.             <RadioButton  
  35.                 android:id="@+id/ra_tongxunlu_bt"  
  36.                 style="@style/rbt_bottom"  
  37.                 android:drawableTop="@drawable/n_address_h"  
  38.                 android:text="@string/tongxulu" />  
  39.         </LinearLayout>  
  40.   
  41.         <LinearLayout style="@style/linaer_bottom" >  
  42.   
  43.             <RadioButton  
  44.                 android:id="@+id/ra_faxian_bt"  
  45.                 style="@style/rbt_bottom"  
  46.                 android:drawableTop="@drawable/n_find_h"  
  47.                 android:text="@string/faxian" />  
  48.         </LinearLayout>  
  49.   
  50.         <LinearLayout style="@style/linaer_bottom" >  
  51.   
  52.             <RadioButton  
  53.                 android:id="@+id/ra_wo_bt"  
  54.                 style="@style/rbt_bottom"  
  55.                 android:drawableTop="@drawable/n_me_h"  
  56.                 android:text="@string/wo" />  
  57.         </LinearLayout>  
  58.     </LinearLayout>  
  59.   
  60. </RelativeLayout>  

你可能感兴趣的:(Fragment)