1 Android 语言的国际化
internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,
localization(本地化 ),简称L10n。
一般用语言_地区的形式表示一种语言,如 zh_CN, zh_TW.
适配多种语言方法
在[Android](http://lib.csdn.net/base/android)工程的res目录下,通过定义特
殊的文件夹名称就可以实现多语言支持。比如我们的程序兼容简体中文、
英文,在values文件夹中建立默认strings.xml,再建立values-zh-rCN文件
夹。
在每个文件夹里放置一个strings.xml,strings.xml里是各种语言字符串。如
果涉及到参数配置类xml文件夹名称也要改成xml-zh、xml。这样在android
的系统中进行语言切换,所开发的程序也会跟着切换语言。
2 Apk的签名文件的作用
作用是:就是区分apk身份的标识
签名完成后,你可以用winrar打开apk,在Meta-inf目录下,用文本编辑
器打开CERT.RSA文件,如果能看到部分你建的key时候输入的文本就是
正式签名了,如果测试签名会有debug字样。(一般情况会乱码,但是用
肉眼仔细观察,你就能略微的看清楚一些啦)值得提醒的就是,软件代
码更新后(需要发布新的APK了),要将ManifestAndroid:versionCode
值+1,每更新一次都要加1。
3 APK的发布
根据要发布的市场进行相关的操作,待完善中……
4 拼接jsonArray的方法
拼接JsonArray 用的方法是:
创建一个JsonArray 集合
通过创建JsonObject 对象,我们通过添加对象的形式进行拼接
如:JSONArray jsonArray = new JSONArray();
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("orderId", commentorderId);
jsonObject1.put("verifyCount", commentnum);
jsonArray.put(jsonObject1);
有几个对象我们就以这个形式进行添加就可以了。
5 listview的Adapter中控件的点击事件总结
使用listview进行数据的展示,我们要点击item里面的控件,进行操作,
我们设置监听必须放在Adapter中的getview方法中进行,
第一种方法:如果我们要动态的获取条目的索引position,那么我们就必
须进行设置的监听必须直接进行书写,不是setOnclickListener(this)这
种,setOnclickListener(new OnclicLisenter){}这种。这样我们就可以
动态的获取position。
第二种方法:动态获取position我们还有另外的一种方法,就是通过我们
的插件黄油刀,我们在viewholder我们进行控件的初始化,对我们要进行
的控件设置点击事件,我们动态获取position用到的方法是,我们在
getview中通过viewholder.setPosition(position);通过这个方法,动态把
position传递给viewholder,在viewholder 中我们把这个postion保存成成
员变量。我们点击事件就可以直接使用这个position。
6 Activity向Fragment进行传值
项目中用到碎片时的困难,我们获取数据是在fragment 中进行获取的,
但是我们首先要初始一个页面,初始页面的时候我们如果需要Activiy 向
fragment 中进行传递参数,我们就需要在fragment进行动态替换之前进
行传递。
···
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
WaitRentFragment waitRentFragment = new
WaitRentFragment();
Bundle bundle = new Bundle();
bundle.putString("rentOrderId",rentOderId);
waitRentFragment.setArguments(bundle);
ft.replace(R.id.fl_snowTools,waitRentFragment);
ft.commit();
···
总结:我们传值用的是bundle进行传递。
7 fragment 碎片,
7.1 切换保存状态
我们动态切换页面要保存页面的状态,我们不能用replace,用hide 和 show,进行页面的切换
核心代码是:
我们首先进行fragment的初始化,把他们添加到集合中,如果我们进行
切换我们只需要调用switchFragment(int position),这个方法,把我们
fragment在集合的索引传递过去就完成了切换。
···
private void initFragment() {
fragmentList.add(new WaitRentFragment());
fragmentList.add(new WaitBackFragment());
}
···
private void switchFragment(int position) {
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
for (int i = 0; i < fragmentList.size(); i++) {
android.app.Fragment fragment = fragmentList.get(i);
if (i == position) {
if (fragment.isAdded()) {
fragmentTransaction.show(fragment);
} else {
Bundle bundle = new Bundle();
bundle.putSerializable("orderId", rentOderId);
fragment.setArguments(bundle);
fragmentTransaction.add(R.id.fl_snowTools, fragment);
}
} else {
if (fragment.isAdded()) {
fragmentTransaction.hide(fragment);
}
}
}
fragmentTransaction.commitAllowingStateLoss();
}
7.2 fragment向Activity进行传递值
//我们采用的方式是用回调的方式,例如我们fragment需要向依赖的
Activity进行传递值的场景,这个时候我们就需要回调进行数据的回传
···
fragment 中的代码
···
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
callback = (CallBack) getActivity();
}
//释放我们的activity,避免出现异常
@Override
public void onDestroy() {
super.onDestroy();
callback = null;
}
//定义回调接口,在我们需要回调数据的地方,调用callback.getData(传入我们需要回掉的数据);
public interface CallBack {
void getData(String s);
void getShowData(List<RentToolsInfo.DataBean> data);
}
···
···
Activity中代码
我们首先要让我们的activity实现我们fragment中创建的接口,会实现
我们接口定义好的方法,我们可以在这个方 法里进行我们的逻辑作
业。
···
7.3 fragment向Activity传递数据自己遇到的坑
逻辑我们在这个fragment中通过回调把我们的data数据已经传递给我们的
activity,我们activity获得这个数据后,需要把其传递到我们租赁成功
面,进行数据的展示,我们报的错误是 传递的值是没有序列化,
但是我们的bean已经序列化了,这是个误区,我们还需要把其需要传递
的内部的类也进行序列化,这样我们就解决了这个问题。
8 Android 原生定义图片
使用shape 我们可以定义圆 椭圆 矩形 线,我们可以设置填充色
9 checkbox和TextinputLayout 选中和动画字体的颜色设置
9.1 checkbox 我们设置被选择的颜色
我们是定义一个style,通过colorAccent 设置选中的颜色
<style name="cb_color" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorAccent">#3293ef</item>
</style>
9.2 TextInputLayout 动态的字体的颜色设置
我们是通过主题的colorAccent 进行颜色的设置。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">#3293ef</item>
<item name="android:windowNoTitle">true</item>
</style>
10 java String 串相关的API
10.1、indexOf() 方法,含义是返回指定字符第一出现的索引。
public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如. 果此字符串中没有这样的字符,则返回 -1。
public int indexOf(int ch, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
10.2、substring()方法
substring() 方法返回字符串的子字符串。
public String substring(int beginIndex)
public String substring(int beginIndex, int endIndex)
beginIndex -- 起始索引(包括), 索引从 0 开始。如果没有限制endindex,会. 返回全部。
endIndex -- 结束索引(不包括)。
10.3、在项目中使用的地方是:
在给webview传cookie的时候,需要给域注入cookie 的.时候从整个url截取域 进行注入cookie的时候使用了两者结合的方式获取。
例如:String url ="https://www.baidu.com?index=1"
截取https://www.baidu.com
url.substring(0,url.indexof(".com")+4)