您的位置:首页 > 移动开发

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

2014-04-29 13:13 603 查看
大家好,我是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应用软件的朋友肯定知道,前两年侧滑应用非常受欢迎。。。。。。。效果如下图












这里放一下核心的代码:

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

* @return 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;

}



}

}

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

下面给下源码:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐