Android 知识积累一
16lz
2021-01-23
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 data);}······Activity中代码我们首先要让我们的activity实现我们fragment中创建的接口,会实现 我们接口定义好的方法,我们可以在这个方 法里进行我们的逻辑作 业。···
7.3 fragment向Activity传递数据自己遇到的坑
逻辑我们在这个fragment中通过回调把我们的data数据已经传递给我们的activity,我们activity获得这个数据后,需要把其传递到我们租赁成功面,进行数据的展示,我们报的错误是 传递的值是没有序列化,但是我们的bean已经序列化了,这是个误区,我们还需要把其需要传递的内部的类也进行序列化,这样我们就解决了这个问题。
8 Android 原生定义图片
使用shape 我们可以定义圆 椭圆 矩形 线,我们可以设置填充色
9 checkbox和TextinputLayout 选中和动画字体的颜色设置
9.1 checkbox 我们设置被选择的颜色
我们是定义一个style,通过colorAccent 设置选中的颜色
9.2 TextInputLayout 动态的字体的颜色设置
我们是通过主题的colorAccent 进行颜色的设置。
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.comurl.substring(0,url.indexof(".com")+4)
更多相关文章
- Android SqLite中insert()方法解析
- android设备调用usb外置摄像头方法及案例
- Android基础教程之-------Android中两种设置全屏的方法!!!
- Android:view常用属性和操作方法
- 在android studio中用SQLiteOpenHelper()方法建立数据库
- Android中显示Dialog的方法