大家好,我是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. * 替换fragment
  27. */
  28. public void replaceFragment(Fragment fragment){
  29. getSupportFragmentManager().beginTransaction().replace(R.id.fl_Container, fragment).commit();
  30. }

  31. /**
  32. * 选择加载一个新的Fragment
  33. */
  34. public void switchNewFragment(Fragment newFragment){
  35. replaceFragment(newFragment);
  36. getSlidingMenu().showContent();
  37. }

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

  44. }
复制代码
  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. @Override
  28. public void onDestroyView() {
  29. super.onDestroyView();
  30. }

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

  36. }

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

  44. }

  45. }
复制代码 今晚就说这些吧,我想说的是,以后会慢慢的写博客,只是为了能使自己的很烂的水平能不那么烂,如果能帮助到别人。。。。呵呵。。。。我也会很开心的。。。。
下面给下源码:

更多相关文章

  1. The Busy Coder's Guide to Android(安卓)Development 学习
  2. Android(安卓)8.0 的开机广播 和 IntentService
  3. Android(安卓)Study -- pmem driver代码分析
  4. Android中使用tcpdump、wireshark进行抓包并分析技术介绍
  5. Android桌面组件App Widget用法入门教程
  6. [置顶] Android基于XMPP Smack Openfire开发IM(2)登录openfire
  7. A005-AS项目结构解析
  8. android下使用单元测试
  9. Andriod中的Context理解与分析

随机推荐

  1. Android仿QQ主界面-------完善篇
  2. android 学习八 android selector的使用
  3. Android自己动手实现下拉刷新控件(1)----典
  4. repo 切换分支一种简单的方法
  5. Android 4.4.2 exfat 移植
  6. Android基础开发之手势识别
  7. React Native Android ScrollView 去除阴
  8. 简述Android消息机制及解惑
  9. Android矢量图(二)--VectorDrawable所有
  10. Android应用项目绑定appcom_v7打包时,出现