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;
}
}
}
复制代码
今晚就说这些吧,我想说的是,以后会慢慢的写博客,只是为了能使自己的很烂的水平能不那么烂,如果能帮助到别人。。。。呵呵。。。。我也会很开心的。。。。
下面给下源码:
,就说是自己练练手的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;
}
}
}
复制代码
今晚就说这些吧,我想说的是,以后会慢慢的写博客,只是为了能使自己的很烂的水平能不那么烂,如果能帮助到别人。。。。呵呵。。。。我也会很开心的。。。。
下面给下源码:
相关文章推荐
- android真实项目教程(四)——MY APP MY STYLE_by_CJJ
- android真实项目教程(二)——漫画App初构_by_CJJ
- android真实项目教程(三)——首页初点缀_by_CJJ
- android真实项目教程(七)——梦醒边缘花落_by_CJJ
- android真实项目教程(五)——有时三点两点雨_by_CJJ
- android真实项目教程(六)——落叶醉赤壁_by_CJJ
- Android APP 开发项目框架搭建
- (转)Android QQ空间(Apad)项目总结(三)---应用UI框架的搭建!!!
- IntelliJ IDEA 12详细开发教程(四) 搭建Android应用开发环境与Android项目创建
- Android QQ空间(Apad)项目总结(三)---应用UI框架的搭建!!!
- 自己搭建Android项目框架必备的框架与第三方应用
- 从框架到完整项目搭建,实战项目《约个球》(8)- 将项目迁移到android studio,使用gradle搭建android项目(中)
- android app主题UI界面框架搭建 tablayout+Viewpager+fragment 导航栏滑动和点击切换界面
- Android应用开发项目实战视频教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- myEclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- android 一个应用去获取另一个应用assets下面的资源通过框架代码桥梁------项目实战成功案例
- android项目从零开始 App 上传 Google play(二)提交应用
- android MVP + dagger2 + Retrofit + Rxjava+okhttp android基础项目框架搭建(3)--完美实现