首页 > 代码库 > Fragment的微信界面源代码

Fragment的微信界面源代码

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