写之前先对SharedPreferences做个简要介绍。
做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等耗时大大影响了程序的效率,因此我们使用键值这种一一对应的关系来存放这些配置信息。SharedPreferences正是Android中用于实现这中存储方式的技术。
SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据。SharedPreferences只能保存简单类型的数据,例如,String、int等。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存。
使用SharedPreferences保存key-value对的步骤如下:
(1)使用Activity类的getSharedPreferences方法获得SharedPreferences对象,
其中存储key-value的文件的名称由getSharedPreferences方法的第一个参数指定。
(2)使用SharedPreferences接口的edit获得SharedPreferences.Editor对象。
3)通过SharedPreferences.Editor接口的putXxx方法保存key-value对。
其中Xxx表示不同的数据类型。例如:字符串类型的value需要用putString方法。
(4)通过SharedPreferences.Editor接口的commit方法保存key-value对。commit方法相当于数据库事务中的提交(commit)操作。
具体代码的书写流程为:
A、存放数据信息
1、打开Preferences,名称为setting,如果存在则打开它,否则创建新的Preferences
SharedPreferences settings = getSharedPreferences(“setting”, 0);
2、让setting处于编辑状态
SharedPreferences.Editor editor = settings.edit();
3、存放数据
editor.putString(“name”,”str”);
4、完成提交
editor.commit();
B、读取数据信息
1、获取Preferences
SharedPreferences settings = getSharedPreferences(“setting”, 0);
2、取出数据
String name = settings.getString(“name”,”默认值”);
以上就是Android中SharedPreferences的使用方法,其中创建的Preferences文件存放位置可以在Eclipse中查看:
若是首次运行,跳转到GuideActivity类执行:
否则执行Welcome类中方法:
activity_main.xml文件内容如下:
还需要记得在AndroidMainfest.xml文件中声明类文件:
做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等耗时大大影响了程序的效率,因此我们使用键值这种一一对应的关系来存放这些配置信息。SharedPreferences正是Android中用于实现这中存储方式的技术。
SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据。SharedPreferences只能保存简单类型的数据,例如,String、int等。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存。
使用SharedPreferences保存key-value对的步骤如下:
(1)使用Activity类的getSharedPreferences方法获得SharedPreferences对象,
其中存储key-value的文件的名称由getSharedPreferences方法的第一个参数指定。
(2)使用SharedPreferences接口的edit获得SharedPreferences.Editor对象。
3)通过SharedPreferences.Editor接口的putXxx方法保存key-value对。
其中Xxx表示不同的数据类型。例如:字符串类型的value需要用putString方法。
(4)通过SharedPreferences.Editor接口的commit方法保存key-value对。commit方法相当于数据库事务中的提交(commit)操作。
具体代码的书写流程为:
A、存放数据信息
1、打开Preferences,名称为setting,如果存在则打开它,否则创建新的Preferences
SharedPreferences settings = getSharedPreferences(“setting”, 0);
2、让setting处于编辑状态
SharedPreferences.Editor editor = settings.edit();
3、存放数据
editor.putString(“name”,”str”);
4、完成提交
editor.commit();
B、读取数据信息
1、获取Preferences
SharedPreferences settings = getSharedPreferences(“setting”, 0);
2、取出数据
String name = settings.getString(“name”,”默认值”);
以上就是Android中SharedPreferences的使用方法,其中创建的Preferences文件存放位置可以在Eclipse中查看:
DDMS->File Explorer /<package name>/shared_prefs/setting.xml
下面开始介绍代码:
主程序里进行判断是不是首次运行的:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//setContentView(R.layout.activity_main);
//判断是否首次运行
SharedPreferences sp = this.getSharedPreferences("sp", 0);
int count = sp.getInt("start_count", 0);
// Toast.makeText(this, String.valueOf(count)+"", Toast.LENGTH_SHORT).show();
if(count == 0){
Editor editor = sp.edit();
//存入数据
editor.putInt("start_count", ++count);
//提交修改
editor.commit();
// Toast.makeText(this, "Guide", Toast.LENGTH_SHORT).show();
Intent mIntent = new Intent();
mIntent.setClass(SplashActivity.this, GuideActivity.class);
SplashActivity.this.startActivity(mIntent);
SplashActivity.this.finish();
//mhandler.sendEmptyMessageDelayed(SWITCH_GUIDE, 100);
}
else
{
// Toast.makeText(this, "Welcome", Toast.LENGTH_SHORT).show();
Intent mIntent = new Intent();
mIntent.setClass(SplashActivity.this, Welcome.class);
SplashActivity.this.startActivity(mIntent);
SplashActivity.this.finish();
}
}
若是首次运行,跳转到GuideActivity类执行:
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.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.Button;
import android.widget.LinearLayout;
public class GuideActivity extends Activity implements OnClickListener
{
private ViewPager mViewPager;
private PagerAdapter mAdapter;
private List<View> mViews = new ArrayList<View>();
// TAB
private Button mEnterButton;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
initView();
initEvents();
}
private void initEvents()
{
mViewPager.setOnPageChangeListener(new OnPageChangeListener()
{
@Override
public void onPageSelected(int arg0)
{
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2)
{
}
@Override
public void onPageScrollStateChanged(int arg0)
{
}
});
}
private void initView()
{
mViewPager = (ViewPager) findViewById(R.id.id_viewpager);
LayoutInflater mInflater = LayoutInflater.from(this);
View tab01 = mInflater.inflate(R.layout.tab01, null);
View tab02 = mInflater.inflate(R.layout.tab02, null);
View tab03 = mInflater.inflate(R.layout.tab03, null);
View tab04 = mInflater.inflate(R.layout.tab04, null);
mViews.add(tab01);
mViews.add(tab02);
mViews.add(tab03);
mViews.add(tab04);
mEnterButton=(Button)tab04.findViewById(R.id.imgbtn_enter);
mEnterButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(GuideActivity.this,Welcome.class);
startActivity(intent);
GuideActivity.this.finish();
}
});
mAdapter = new PagerAdapter()
{
@Override
public void destroyItem(ViewGroup container, int position,
Object object)
{
container.removeView(mViews.get(position));
}
@Override
public Object instantiateItem(ViewGroup container, int position)
{
View view = mViews.get(position);
container.addView(view);
return view;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1)
{
return arg0 == arg1;
}
@Override
public int getCount()
{
return mViews.size();
}
};
mViewPager.setAdapter(mAdapter);
}
@Override
public void onClick(View v) {
}
}
否则执行Welcome类中方法:
import android.app.Activity;
import android.os.Bundle;
public class Welcome extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
}
}
activity_main.xml文件内容如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/id_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</android.support.v4.view.ViewPager>
</LinearLayout>
还需要记得在AndroidMainfest.xml文件中声明类文件:
<activity
android:name="com.yayun.guide.SplashActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.yayun.guide.Welcome" >
</activity>
<activity android:name="com.yayun.guide.GuideActivity" >
</activity>
(图片仅供参考)
文章参考:
http://blog.csdn.net/yayun0516/article/details/49019421
http://blog.sina.com.cn/s/blog_7ab107b00100u78t.html