Statis Acticity 改为Fragment
来源:互联网 发布:windows选择操作系统 编辑:程序博客网 时间:2024/05/02 21:35
这里有五个关键步骤:
1. 要实现 ActionBar.TabListener接口,当点击Tab的时候触发这个接口里面的事件,有onTabSelected(), onTabUnselected(), 和 onTabReselected(). 实现ActionBar.TabListener接口时,应当在类内有个Fragment的引用,这样点击这个Tab时就可以调用对应的Fragment.
2. 通过getActionBar() 方法得到Activity中的ActionBar。
3. 设置AcitonBar的操作模式: setNavigationMode(NAVIGATION_MODE_TABS)。
4. 在ActionBar中添加Tabs:一.调用AciontBar的newTab()生成一个ActionBar.Tab. 二.为Tab增加text或者icon .调用setText() , setIcon() 三.为每个 ActionBar.Tab 添加ActionBar.TabListener.
5. 调用addTab()将生成的Tab加入ActionBar中
二.Action项在菜单配置文件中的配置和普通菜单项的区别在于需要设置showAsAction属性。
三.1>style和theme的定义格式相同。不过style是针对view来说的,比如TextView,EditText这些,而theme必须针对整个activity或者整个程序,你必须在AndroidManifest.xml中的<application>或者<activity>中定义。
2>.如果你要在java代码中加载主题的话,只要用setTheme(R.style.CustomTheme)就可以了,不过记得一定要在初始化任何view之前,比如一定要放在我们常用的setContentView()之前。通常,我们不建议这么做。
3>.public abstract SharedPreferences getSharedPreferences (String name, int mode)
name是存储的时候的文件的名字
mode是存储的格式,常见的有四种格式;默认的模式为0或MODE_PRIVATE,
MODE_PRIVATE :只能是建立文件的程序可以访问
MODE_WORLD_READABLE :所有程序都可以访问文件但是不能更改
MODE_WORLD_WRITEABLE :所有程序都可以改变文件的内容
MODE_APPEND :检查文件,文件存在则在文件的末尾添加,不存在则建立文件并在里面添加内容。
getSharedPreferences(String name, int mode).getXXX(key,null)
4.在使用SharedPreferences时常用的方法包括(方法具体含义参考官方文档):
? Context.getSharedPreferences (String name, int mode)
? Activity.getPreferences (int mode)
? SharedPreferences.edit();
? SharedPreferences.getXXX(name, defaultValue);
? SharedPreferences.Editor.putXXX(name, value);
? SharedPreferences.Editor.commit();
步骤:
保存数据
Log.d("SharedPreferences", "保存数据...");
//获得SharedPreferences对象
SharedPreferences settings = this.getSharedPreferences("shared_file", 0);
//获得可编辑对象
SharedPreferences.Editor editor = settings.edit();
editor.putString("name", "Kael Chen");
editor.putInt("age", 22);
editor.commit();
Log.d("SharedPreferences", "保存数据成功");
读取数据
Log.d("SharedPreferences", "获取数据...");
SharedPreferences settings = this.getSharedPreferences("shared_file", 0);
String name = settings.getString("name", "no name");
int age = settings.getInt("age", 0);
Log.d("SharedPreferences", "name:" + name + ", age:" + age);
Log.d("SharedPreferences", "获取数据成功");
执行代码后,可以看到在data/data/pacakge name/shared_prefs/目录下多了一个shared_file.xml文件,文件名是由getSharedPreferences方法中传入的参数决定的。
文件内容如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="name">Kael Chen</string>
<int name="age" value="22" />
</map>
可以看到,不同于ini文件的是,这里是严格区分了数据的类型的,所以在getXXX和putXXX相同数据时使用的类型一定要匹配。
另外值得注意的是getSharedPreferences 方法中的mode参数以及getPreferences和getSharedPreferences 的区别。
getPreferences和getSharedPreferences的区别:
1、getPreferences只能由Activity调用,只在调用它的Activity范围内有效。
2、getSharedPreferences是由Context调用,在包范围内有效。可以这样理解,AndroidManifest.xml文件中定义了包的位置,比如我的测试程序中定义的包为cn.kael.sample,那么android会建立data/data/cn.kael.sample/shared_prefs/的目录,并在其下产生SharePreferences文件。因此如果已经在一个地方使用了SharedPrefernces,并创建了相应的SharedPrefernces文件,然后你想在另一个地方使用该SharedPrefernces文件,你只需要根据文件的路径规则判断在新的地方使用SharedPrefernces生成的路径是不是和之前SharedPrefernces文件的路径一致,就可以知道两者之间是否能够共用SharedPrefernces,即使它们不属于同一个应用程序(因为android是根据包名来决定SharedPrefernces文件的创建位置的,和应用程序名无关)。
关于mode参数:
要想在程序B想访问程序A的SharedPrefernces文件:
首先需要程序A在创建SharedPrefernces时使用MODE_WORLD_WRITEABLE或者MODE_WORLD_READABLE作为mode参数:
SharedPreferences settings = this.getSharedPreferences("shared_file", Context.MODE_WORLD_WRITEABLE);
然后在程序B中需要先创建程序A的context对象,然后再通过这个context对象来调用getSharedPreferences方法:
Context contextA = createPackageContext("cn.kael.sample",
Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences settings = contextA.getSharedPreferences(
"shared_file", Context.MODE_WORLD_WRITEABLE);
- Statis Acticity 改为Fragment
- 如何在fragment中跳转到acticity
- ActivityGroup改为Fragment
- Statistical由Activity改为Fragment
- Fragment与Acticity的信息传递 || Fragment之间的信息传递
- variable for statis
- Statistical由Activity改为Fragment(二)
- Android简单的将Activity改为Fragment
- Acticity学习
- 半透明acticity
- 如何把pageadapter改为fragment state pager adapter
- ffmpeg statis vs dev技术选型?
- Acticity的启动模式
- Acticity 之间的切换
- Acticity的数据保存
- Android基本之Acticity&Intent
- android acticity间动画跳转
- AppWidget如何打开一个Acticity?
- HDU-2090
- KMP&&EKMP&&Manacher算法模版
- POJ 3450 Corporate Identity 暴力枚举+KMP
- VFP--ARM浮点体系结构机介绍
- 素数与线性筛选法初级版
- Statis Acticity 改为Fragment
- HandlerThread的使用------Hander所在线程
- 关于floyd的一点 总结
- IDirect3DDevice9::SetTextureStageState
- 功能测试要领
- C# excel模板导出
- 优先队列
- A * B problem
- ubuntu10.04下安装jdk1.6解决办法