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;
-
}
-
-
}
-
- }
下面给下源码: