前两天写了这个的主要实现的原理,没有写详细代码实现,看得人不多,如今写出详细代码
代码贴出来,凝视已经非常具体,不多说,有问题能够留言 PS注意配合上一篇博客看源代码会更简单
SharedPreferencesUtil.java
package com.yufeng.yufenglashou.util;
import android.content.Context;
import com.yufeng.yufenglashou.moder.LaShouApplication;
public class SharedPreferencesUtil {
public static void keepPreference(String key, String valse) {
// Context.MODE_PRIVATE代表在data/data下创建的首选项文件是私有的
LaShouApplication.context
.getSharedPreferences("lashou", Context.MODE_PRIVATE).edit()
.putString(key, valse).commit();// 记得获取edit对象后一定要commit提交
}
/**
* 当返回空字符串则不存在
*
* @param key
* @return
*/
public static String getPreference(String key) {
// Context.MODE_PRIVATE代表在data/data下创建的首选项文件是私有的
return LaShouApplication.context.getSharedPreferences("lashou",
Context.MODE_PRIVATE).getString(key, "");
}
}
HomeActivity.java
package com.yufeng.yufenglashou;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
public class HomeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(this, "这是主页", Toast.LENGTH_LONG).show();
}
}
GuideActivity.java
package com.yufeng.yufenglashou;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import com.yufeng.yufenglashou.adapter.GuideAdapter;
public class GuideActivity extends Activity {
private Button guideButton;
private ViewPager guideViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.guide);
// 初始化view
setUpView();
// 给控件加入监听
addListener();
}
private void addListener() {
// 由于我们的引导页是在最后一个页面有一个button叫马上体验的
// 本来button是默认不现实的。我们就须要监听guideViewpage的onpageChageListener
guideViewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// 当滚动状态的变化
// 我们仅仅处理这里就能够了
// 当为2的时候就是第三页
if (arg0 == 2) {
// 设置显示
guideButton.setVisibility(View.VISIBLE);
} else {
// 设置不显示
guideButton.setVisibility(View.GONE);
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// 此方法将被调用时。当前页面滚动,不管是作为一个程序启动平滑滚动或用户发起的触摸滚动。
}
@Override
public void onPageScrollStateChanged(int arg0) {
// 此方法将被调用时,新的一页。成为选择。
}
});
guideButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
GuideActivity.this.startActivity(new Intent(GuideActivity.this,
HomeActivity.class));
}
});
}
private void setUpView() {
guideButton = (Button) findViewById(R.id.guide_button);
guideViewPager = (ViewPager) findViewById(R.id.guide_viewpage);
// 整理欢迎界面图片到控件
List<View> guides = new ArrayList<View>();
ImageView imageView = new ImageView(this);
imageView.setImageResource(R.drawable.guide1);
guides.add(imageView);
ImageView imageView1 = new ImageView(this);
imageView1.setImageResource(R.drawable.guide2);
guides.add(imageView1);
ImageView imageView11 = new ImageView(this);
imageView11.setImageResource(R.drawable.guide3);
guides.add(imageView11);
GuideAdapter guideAdapter = new GuideAdapter(guides);
guideViewPager.setAdapter(guideAdapter);
}
}
GuideAdapter.java
package com.yufeng.yufenglashou.adapter;
import java.util.List;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
public class GuideAdapter extends PagerAdapter {
private List<View> views;
public GuideAdapter(List<View> views) {
this.views = views;
}
@Override
public int getCount() {
return views.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
// 删除view
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
object = null;
}
// 加入view
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position));
return views.get(position);
}
}
LaShouApplication.java
package com.yufeng.yufenglashou.moder;
import android.app.Application;
import android.content.Context;
/**
* 创建application要在androidmanifest里面注冊。不然是不会运行的 这个类在软件最先启动,最后挂
*
* @author Administrator
*
*/
public class LaShouApplication extends Application {
/**
* 共享出自己以便其它地方用到
*/
public static Context context;
@Override
public void onCreate() {
super.onCreate();
context = this;
}
}
WelcomeActivity.java
package com.yufeng.yufenglashou;
import com.yufeng.yufenglashou.moder.LaShouApplication;
import com.yufeng.yufenglashou.util.SharedPreferencesUtil;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.os.Handler;
import android.os.Handler.Callback;
import android.os.Message;
public class WelcomeActivity extends Activity {
private String versionName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
// 获取我们项目包名的管理器而且获取版本
versionName = LaShouApplication.context.getPackageManager()
.getPackageInfo("com.yufeng.yufenglashou", 0).versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
// 界面什么都不做停留三秒以后运行到handlerMessage方法
new Handler(new Callback() {
@Override
public boolean handleMessage(Message msg) {
// 我们在这推断是不是第一次打开
if (SharedPreferencesUtil.getPreference(versionName).equals(
"true")) {
// 不是第一次打开,跳转到主页
WelcomeActivity.this.startActivity(new Intent(
WelcomeActivity.this, HomeActivity.class));
} else {
// 当取到的不是true就代表是""即没有存入就是第一次打开
// 跳转到引导页
WelcomeActivity.this.startActivity(new Intent(
WelcomeActivity.this, GuideActivity.class));
// 保存已经打开
SharedPreferencesUtil.keepPreference(versionName, "true");
}
return false;
}
}).sendEmptyMessageDelayed(0, 1500);
}
}
所有评论(0)