android真实项目教程(一)——App应用框架搭建_by_CJJ
16lz
2021-01-24
大家好,我是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应用软件的朋友肯定知道,前两年侧滑应用非常受欢迎。。。。。。。效果如下图
这里放一下核心的代码:
下面给下源码:
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应用软件的朋友肯定知道,前两年侧滑应用非常受欢迎。。。。。。。效果如下图
这里放一下核心的代码:
- package com.cjj.shopapp.models;
-
- import com.cjj.shopapp.utils.LogUtil;
-
- import android.app.Application;
- import android.content.Context;
-
- public class ShopAppApplication extends Application {
- private static ShopAppApplication instance;
-
- @Override
- public void onCreate() {
- super.onCreate();
- LogUtil.LogMsg("---------------------onCreate start-------------");
- }
-
- public ShopAppApplication() {
- ShopAppApplication.instance = this;
- LogUtil.LogMsg("---------------------ShopAppApplication start-------------");
- }
-
- public static ShopAppApplication getInstance() {
- return instance;
- }
-
- }
-
- package com.cjj.shopapp.activity;
-
- import com.cjj.shopapp.fragment.HomeFrameFragment;
-
- import android.os.Bundle;
- import android.support.v4.app.Fragment;
- import android.view.Menu;
-
- public class MainActivity extends BaseActivity {
- private HomeFrameFragment homeFrameFragment;
-
- public MainActivity() {
- super(R.string.viewpager);
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main2);
- init();
- }
- /**
- * 初始化数据
- */
- private void init() {
- //加载首页fragment
- homeFrameFragment = new HomeFrameFragment();
- replaceFragment(homeFrameFragment);
- }
-
-
- /**
- * 替换fragment
- */
- public void replaceFragment(Fragment fragment){
- getSupportFragmentManager().beginTransaction().replace(R.id.fl_Container, fragment).commit();
- }
-
- /**
- * 选择加载一个新的Fragment
- */
- public void switchNewFragment(Fragment newFragment){
- replaceFragment(newFragment);
- getSlidingMenu().showContent();
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
-
- }
- package com.cjj.shopapp.activity;
-
- import android.os.Bundle;
- import android.support.v4.app.FragmentManager;
- import android.support.v4.app.FragmentTransaction;
- import android.view.KeyEvent;
- import android.widget.Toast;
-
- import com.cjj.shopapp.fragment.SlideMenuFragment;
- import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
- import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;
-
- public class BaseActivity extends SlidingFragmentActivity {
- private int mTitleRes;
-
- private SlideMenuFragment SlideMenu;
-
- public BaseActivity(int titleRes) {
- mTitleRes = titleRes;
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
-
- setTitle(mTitleRes);
- //隐藏的slidingmenu
- setBehindContentView(R.layout.menu_frame);
-
- FragmentManager fm = getSupportFragmentManager();
- if (savedInstanceState == null) {
- FragmentTransaction ft = fm.beginTransaction();
- SlideMenu = new SlideMenuFragment();
- ft.replace(R.id.menu_frame, SlideMenu);
- ft.commit();
- } else {
- SlideMenu = (SlideMenuFragment) fm
- .findFragmentById(R.id.menu_frame);
- }
-
- // 获得SlidingMenu
- SlidingMenu sm = getSlidingMenu();
- sm.setShadowWidthRes(R.dimen.shadow_width);
- // sm.setShadowDrawable(R.drawable.ic_launcher);
- sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
- sm.setFadeDegree(0.35f);
- sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
- }
-
- private void toastMsg(String msg) {
- Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
- }
-
- /*退出的间隔时间 */
- private static final long EXIT_INTERVAL_TIME = 2000;
- private long touchTime = 0;
-
- /**
- * On key up.
- *
- * @param keyCode
- * the key code
- * @param event
- * the event
- * [url=home.php?mod=space&uid=309376]@return[/url] true, if successful
- */
- public boolean onKeyUp(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK
- && getSlidingMenu().isMenuShowing()) {
- long currentTime = System.currentTimeMillis();
-
- if ((currentTime - touchTime) >= EXIT_INTERVAL_TIME) {
- toastMsg("在按一次退出程序");
- touchTime = currentTime;
- } else {
- finish();
- System.exit(0);
- }
-
- return false;
- } else {
- getSlidingMenu().showMenu();
- return true;
- }
- }
-
- }
- package com.cjj.shopapp.fragment;
-
- import com.cjj.shopapp.activity.MainActivity;
- import com.cjj.shopapp.activity.R;
-
- import android.os.Bundle;
- import android.support.v4.app.Fragment;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.ViewGroup;
- import android.widget.ImageButton;
-
- public class HomeFrameFragment extends Fragment implements OnClickListener{
- private ImageButton ibtn_left_menu;
- @Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View v = inflater.inflate(R.layout.fragment_home_frame, null);
- return v;
- }
-
-
- @Override
- public void onDestroyView() {
- super.onDestroyView();
- }
-
- @Override
- public void onViewCreated(View view, Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- ibtn_left_menu = (ImageButton) view.findViewById(R.id.ibtn_left_menu);
- ibtn_left_menu.setOnClickListener(this);
-
- }
-
- @Override
- public void onClick(View v) {
- switch(v.getId()){
- case R.id.ibtn_left_menu:
- ((MainActivity) getActivity()).showMenu();
- break;
- }
-
- }
-
- }
下面给下源码:
更多相关文章
- The Busy Coder's Guide to Android(安卓)Development 学习
- Android(安卓)8.0 的开机广播 和 IntentService
- Android(安卓)Study -- pmem driver代码分析
- Android中使用tcpdump、wireshark进行抓包并分析技术介绍
- Android桌面组件App Widget用法入门教程
- [置顶] Android基于XMPP Smack Openfire开发IM(2)登录openfire
- A005-AS项目结构解析
- android下使用单元测试
- Andriod中的Context理解与分析