android真实项目教程(一)——App应用框架搭建_by_CJJ

大家好,我是CJJ,学android半年了,仍然是菜虫一只。。。。。。为了进步,想把自己知道的知识和初学者分享,也希望路过的大神能给些意见。。。。呵呵。。。。。。开始今天的教程吧,晕,不敢说教程了 ,就说是自己练练手的demo吧。。。。呵呵。。。。。。。。                        android真实项目教程(一)——App应用框架搭建_by_CJJ      http://www.apkbus.com/forum.php?mod=viewthread&tid=166151
           android真实项目教程(二)——漫画App初构_by_CJJ         http://www.apkbus.com/forum.php?mod=viewthread&tid=166262
           android真实项目教程(三)——首页初点缀_by_CJJ             http://www.apkbus.com/forum.php?mod=viewthread&tid=166630
          android真实项目教程(四)——MY APP MY STYLE_by_CJJ     http://www.apkbus.com/forum.php?mod=viewthread&tid=167676
          android真实项目教程(五)——有时三点两点雨_by_CJJ     
http://www.apkbus.com/forum.php?mod=viewthread&tid=168422          android真实项目教程(六)——落叶醉赤壁_by_CJJ           http://www.apkbus.com/android-168858-1-1.html

今天晚上搭了一个程序的主框架,主要是SlidingMenu+fragment,用过android应用软件的朋友肯定知道,前两年侧滑应用非常受欢迎。。。。。。。效果如下图        


                                                                                                                                      
这里放一下核心的代码:
  1. package com.cjj.shopapp.models;

  2. import com.cjj.shopapp.utils.LogUtil;

  3. import android.app.Application;
  4. import android.content.Context;

  5. public class ShopAppApplication extends Application {
  6.         private static ShopAppApplication instance;

  7.         @Override
  8.         public void onCreate() {
  9.                 super.onCreate();
  10.                 LogUtil.LogMsg("---------------------onCreate start-------------");
  11.         }

  12.         public ShopAppApplication() {
  13.                 ShopAppApplication.instance = this;
  14.                 LogUtil.LogMsg("---------------------ShopAppApplication start-------------");
  15.         }

  16.         public static ShopAppApplication getInstance() {
  17.                 return instance;
  18.         }

  19. }
复制代码







  1. package com.cjj.shopapp.activity;

  2. import com.cjj.shopapp.fragment.HomeFrameFragment;

  3. import android.os.Bundle;
  4. import android.support.v4.app.Fragment;
  5. import android.view.Menu;

  6. public class MainActivity extends BaseActivity {
  7.         private HomeFrameFragment homeFrameFragment;

  8.         public MainActivity() {
  9.                 super(R.string.viewpager);
  10.         }

  11.         @Override
  12.         public void onCreate(Bundle savedInstanceState) {
  13.                 super.onCreate(savedInstanceState);
  14.                 setContentView(R.layout.activity_main2);
  15.                 init();
  16.         }
  17.         /**
  18.          * 初始化数据
  19.          */
  20.         private void init() {
  21.                 //加载首页fragment
  22.                 homeFrameFragment = new HomeFrameFragment();
  23.                 replaceFragment(homeFrameFragment);
  24.         }
  25.         
  26.         
  27.         /**
  28.          * 替换fragment
  29.          */
  30.         public void replaceFragment(Fragment fragment){
  31.                 getSupportFragmentManager().beginTransaction().replace(R.id.fl_Container, fragment).commit();
  32.         }
  33.         
  34.         /**
  35.          * 选择加载一个新的Fragment
  36.          */
  37.         public void switchNewFragment(Fragment newFragment){
  38.            replaceFragment(newFragment);   
  39.            getSlidingMenu().showContent();
  40.         }

  41.         @Override
  42.         public boolean onCreateOptionsMenu(Menu menu) {
  43.                 // Inflate the menu; this adds items to the action bar if it is present.
  44.                 getMenuInflater().inflate(R.menu.main, menu);
  45.                 return true;
  46.         }

  47. }
复制代码
  1. package com.cjj.shopapp.activity;

  2. import android.os.Bundle;
  3. import android.support.v4.app.FragmentManager;
  4. import android.support.v4.app.FragmentTransaction;
  5. import android.view.KeyEvent;
  6. import android.widget.Toast;

  7. import com.cjj.shopapp.fragment.SlideMenuFragment;
  8. import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
  9. import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;

  10. public class BaseActivity extends SlidingFragmentActivity {
  11.         private int mTitleRes;

  12.         private SlideMenuFragment SlideMenu;

  13.         public BaseActivity(int titleRes) {
  14.                 mTitleRes = titleRes;
  15.         }

  16.         @Override
  17.         public void onCreate(Bundle savedInstanceState) {
  18.                 // TODO Auto-generated method stub
  19.                 super.onCreate(savedInstanceState);

  20.                 setTitle(mTitleRes);
  21.                 //隐藏的slidingmenu
  22.                 setBehindContentView(R.layout.menu_frame);

  23.                 FragmentManager fm = getSupportFragmentManager();
  24.                 if (savedInstanceState == null) {
  25.                         FragmentTransaction ft = fm.beginTransaction();
  26.                         SlideMenu = new SlideMenuFragment();
  27.                         ft.replace(R.id.menu_frame, SlideMenu);
  28.                         ft.commit();
  29.                 } else {
  30.                         SlideMenu = (SlideMenuFragment) fm
  31.                                         .findFragmentById(R.id.menu_frame);
  32.                 }

  33.                 // 获得SlidingMenu
  34.                 SlidingMenu sm = getSlidingMenu();
  35.                 sm.setShadowWidthRes(R.dimen.shadow_width);
  36.                 // sm.setShadowDrawable(R.drawable.ic_launcher);
  37.                 sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
  38.                 sm.setFadeDegree(0.35f);
  39.                 sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
  40.         }

  41.         private void toastMsg(String msg) {
  42.                 Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
  43.         }

  44.         /*退出的间隔时间 */
  45.         private static final long EXIT_INTERVAL_TIME = 2000;
  46.         private long touchTime = 0;

  47.         /**
  48.          * On key up.
  49.          * 
  50.          * @param keyCode
  51.          *            the key code
  52.          * @param event
  53.          *            the event
  54.          * [url=home.php?mod=space&uid=309376]@return[/url] true, if successful
  55.          */
  56.         public boolean onKeyUp(int keyCode, KeyEvent event) {
  57.                 if (keyCode == KeyEvent.KEYCODE_BACK
  58.                                 && getSlidingMenu().isMenuShowing()) {
  59.                         long currentTime = System.currentTimeMillis();

  60.                         if ((currentTime - touchTime) >= EXIT_INTERVAL_TIME) {
  61.                                 toastMsg("在按一次退出程序");
  62.                                 touchTime = currentTime;
  63.                         } else {
  64.                                 finish();
  65.                                 System.exit(0);
  66.                         }

  67.                         return false;
  68.                 } else {
  69.                         getSlidingMenu().showMenu();
  70.                         return true;
  71.                 }
  72.         }

  73. }
复制代码
  1. package com.cjj.shopapp.fragment;

  2. import com.cjj.shopapp.activity.MainActivity;
  3. import com.cjj.shopapp.activity.R;

  4. import android.os.Bundle;
  5. import android.support.v4.app.Fragment;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.View.OnClickListener;
  9. import android.view.ViewGroup;
  10. import android.widget.ImageButton;

  11. public class HomeFrameFragment extends Fragment implements OnClickListener{
  12.         private ImageButton ibtn_left_menu;
  13.         @Override
  14.         public void onActivityCreated(Bundle savedInstanceState) {
  15.                 super.onActivityCreated(savedInstanceState);
  16.         }

  17.         @Override
  18.         public void onCreate(Bundle savedInstanceState) {
  19.                 super.onCreate(savedInstanceState);
  20.         }

  21.         @Override
  22.         public View onCreateView(LayoutInflater inflater, ViewGroup container,
  23.                         Bundle savedInstanceState) {
  24.                 View v = inflater.inflate(R.layout.fragment_home_frame, null);
  25.                 return v;
  26.         }

  27.         
  28.         @Override
  29.         public void onDestroyView() {
  30.                 super.onDestroyView();
  31.         }

  32.         @Override
  33.         public void onViewCreated(View view, Bundle savedInstanceState) {
  34.                 super.onViewCreated(view, savedInstanceState);
  35.                 ibtn_left_menu = (ImageButton) view.findViewById(R.id.ibtn_left_menu);
  36.                 ibtn_left_menu.setOnClickListener(this);
  37.                 
  38.         }

  39.         @Override
  40.         public void onClick(View v) {
  41.                 switch(v.getId()){
  42.                 case R.id.ibtn_left_menu:
  43.                         ((MainActivity) getActivity()).showMenu();
  44.                         break;
  45.                 }
  46.                 
  47.         }

  48. }
复制代码
今晚就说这些吧,我想说的是,以后会慢慢的写博客,只是为了能使自己的很烂的水平能不那么烂,如果能帮助到别人。。。。呵呵。。。。我也会很开心的。。。。
下面给下源码:
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值