1.
String path = String.format(Contants.NEWS_URL_HOST+Contants.NEWS_TOP_URL,pageIndex);
将NEWS_URL_HOST+NEWS_TOP_URL组成的网址中d%的值替换为pageIndex
2.OnScrollListener滑动监听中onScroll应设置一个标签返回给onScrollStateChanged用
3.
Runtime.getRuntime().maxMemory();
得到手机最大内存
4.
LruCachecache = new LruCache ((int) (maxMemory/16)){ @Override protected int sizeOf(String key, Bitmap value) { return value.getByteCount()*value.getHeight();//返回一张图片的字节总数。 }};
返回一张图片的字节总数。
5.
getResources().getDisplayMetrics().widthPixels;
返回屏幕宽度
6.
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { int left = (int) (scroll_line_width*(position+positionOffset));//下划线距离最左边的距离 params.leftMargin = left; scroll_line.setLayoutParams(params); } @Override public void onPageSelected(int position) { int out_left = position*scroll_line_width +scroll_line_width/2 - getResources().getDisplayMetrics().widthPixels/2;//滑动条左边超出屏幕的距离 scrollView.smoothScrollTo(out_left,0); } @Override public void onPageScrollStateChanged(int state) { } });
7.window
// 去掉标题栏(该代码必须在setContentView()前调用)requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);window = getWindow();// 去掉状态栏window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
8.切换横竖屏时如何不销毁当前Activity
9.隐藏ActionBar
10.动态设置布局宽和高
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,1); txVeiwHolder.imageView.setLayoutParams(params);
或者
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT); txVeiwHolder.imageView.setLayoutParams(params1);
11.使应用程序变成对话框的形式
android :theme="@android:style/Theme.Dialog"
12.java代码调用string.xml中的文字可以使用
getActivity().getString(R.string.ts0)
但是调用颜色的话需要sdk23以上的版本
getActivity().getColor(R.color.colorBack)
getResources().getColor(R.color.my_blue)
13.String s = new String("xyz");创建了几个String Object?
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s
14.viewpager每次切换的时候, 会重新创建当前界面及左右界面三个界面, 每次切换都要重新oncreate, 所以只要设置
viewPager setOffscreenPageLimit(3);
即可避免这个问题。
viewPager.setOffscreenPageLimit(3);表示三个界面之间来回切换都不会重新加载15.fragment里嵌套viewpager,如何让viewpager滑到最后一页滑不动
viewPager.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { //让ViewPager的父容器不要拦截滑动事件 viewPager.getParent().requestDisallowInterceptTouchEvent(true); //这里如果返回true则ViewPager的滑动事件会被屏蔽 return false; }});//给ListView添加头部,这行代码一定要写在listView.setAdapter(adapter);之前listView.addHeaderView(headerView);
16.将一个Activity设置成窗口样式
在AndroidManifest.xml中定义Activity的地方一句话
android:theme="@android:style/Theme.Dialog"
或
android:theme="@android:style/Theme.Translucent"//就变成半透明的
17.后台的Activity如何在被系统回收之前保存当前状态?
onSaveInstanceState()
18.android中service的实现方法是
startservice和bindservice
19.TextView设置为指定的行数
android:lines="2"android:ellipsize="end"
20.登录密码使用MD5加密
MD5.getMD5(old_password).toUpperCase()
21.alertdialog无法弹出
切记:清单文件中app的风格一定要继承
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
22.代码中调用string.xml中的字符
在Activity中
getString(R.string.resource_name);
或者
getResources().getString(R.string.resource_name);
其他地方
用context上下文context.getString(R.string.resource_name);
context可以从调用的地方获得,或者 getApplicationContext 用全局的context
或者用application.getString(R.string.resource_name);
23.onActivityResult不执行的原因
activity的启动模式不能为singleTask
24.圆角按钮
效果图
25.刷新当前activity
调用oncreate()方法即可
26.去除listview之间的分割线
android:divider="@null"
27.格式化时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");String dateStr = sdf.format(new Date());//最新的时间
如果不想月和日前面自动补0,只要设置格式为yyyy-M-d即可
28.
android:exported="true"的作用是设置其他应用可以调用该activity
29.
自定义View中注册广播,需要重写onDetachFromWindow()方法去销毁广播
30.
如果不想控件被父布局遮挡,在根布局设置属性android:clipChildren=
"false"
31.
如果不想底部导航栏被软键盘顶起来,在清单文件设置 android:windowSoftInputMode="adjustPan"这个属性
32.
迭代开发的时候如何向前兼容新旧接口?
设计服务器接口时,都带版本号:例如1/2、当时间久了以后,旧版本就不维护了
33:
(后缀)逆波兰式
中缀表达式:9+(3-1)*3+10/2
后缀表达式:931-3*+10 2/+