1、List和Json相互转化
因为要保存List集合到SharedPreferences,而SharedPreferences只能存放基本类型,所以要把List集合转化为Json字符串
new Gson().toJson( List集合对象 )//List转Json
new Gson().fromJson( json字符串, new TypeToken< List集合对象 >() { }.getType()); //Json转List
2、ListView添加顶部和底部(比如刷新和加载更多按钮)
这个方法就是addFooterView和addHeaderView。但要注意的是,这两个方法一定要在setAdapter方法之前被调用,不然是显示不出效果的。
teaListView.addFooterView(footView);
teaListView.setAdapter(teaListAdater);
footViewLayout = (LinearLayout) LayoutInflater.from(
mContext).inflate(R.layout.my_footview, null);
load = (Button) footViewLayout.findViewById(R.id.load);
load.setOnClickListener(this);
cListView.addFooterView(footViewLayout);
3、设置ListView的item跳到顶部
//两个顺序不能颠倒
cSuppliersInfoAdapter.notifyDataSetChanged();
cListView.setSelection(0);
4、动态设置ListView的高度
public void setListViewHeightBasedOnChildren(ListView listView,int LoadFlag) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
if (LoadFlag==0) {
for (int i = 0; i < 3; i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
}else if (LoadFlag==1) {
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
//((MarginLayoutParams) params).setMargins(10, 10, 10, 10); // 可删除
listView.setLayoutParams(params);
}
5、解决三星拍照旋转,检测到data为null
在注册清单文件时加上下面这两句
android:screenOrientation="portrait"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|navigation"
6、透明度
7、EditText中动态设置明文、密文的切换
1. EditText edt = new EditText(context);
密文:edt.setTransformationMethod(PasswordTransformationMethod.getInstance());
明文:edt.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
2.
明文: edt.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
密文: edt.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
3、.setInputType(0x81) //EditText变为密码状态。
.setInputType(0x90) //EditText变为非密码状态。
8、查看秘钥内容
打开cmd切换到目录输入 keytool -list -keystore debug.keystore
9、Class.getSimpleName()的作用
<pre id="best-content-2001651642" class="best-text mb-10">//Class类,是获取类的类模板实例对象,通过反射的机制获取。
///根据<a target=_blank rel="nofollow" href="https://www.baidu.com/s?wd=API&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3n1TLmhNBmHTvnj9-uWP90AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtknWn4P1nvnW03nWRYnW64P1n4" target="_blank" class="baidu-highlight">API</a>中的定义,Class.getSimpleName()方法是获取<a target=_blank rel="nofollow" href="https://www.baidu.com/s?wd=%E6%BA%90%E4%BB%A3%E7%A0%81&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3n1TLmhNBmHTvnj9-uWP90AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtknWn4P1nvnW03nWRYnW64P1n4" target="_blank" class="baidu-highlight">源代码</a>中给出的‘底层类’简称
//而Class.getName();以String的形式,返回Class对象的‘实体’名称
public class sample{ public static void main(String[] args){ //得到类的简写名称 System.out.println(sample.class.getSimpleName()); //得到对象的全路径 System.out.println(sample.class); //得到对象的类模板示例,也就是Class System.out.println(sample.class.getClass()); //得到Class类的名称 System.out.println(sample.class.getClass().getName()); } }打印结果为:sampleclass com.lovo.test.sampleclass java.lang.Classjava.lang.Class