小知识点总结
来源:互联网 发布:怎么开淘宝网店挣钱 编辑:程序博客网 时间:2024/06/07 15:49
1、textview设置compoundDrawable的时候需要对设置的drawable资源设置bounds,否则不显示;
mDrawableLeft = getActivity().getResources().getDrawable(R.drawable.ic_classify_icon);mDrawableLeft.setBounds(0, 0, mDrawableLeft.getMinimumWidth(), mDrawableLeft.getMinimumHeight());tvClassfiy1.setCompoundDrawables(mDrawableLeft, null, mDrawableRigtup, null);
2、FragmentTabHost使用的时候,当realcontent在host下面的时候,tabhost的高度不能设定为固定值,否则realcontent显示不出来。
3、webview注入js
webView.loadUrl("http://www.m********ial");webView.loadUrl("javascript:" + "var UID="+user.getId() +" ;");webView.loadUrl("javascript:" + "alert( UID);");
4、webView修改跳转链接
webView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {String mUrl =url+"?uid="+user.getId();view.loadUrl(mUrl);return true;}});
5、Android中的dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
dispatchTouchEvent是处理触摸事件分发,事件(多数情况)是从Activity的dispatchTouchEvent开始的。执行super.dispatchTouchEvent(ev),事件向下分发。onInterceptTouchEvent是ViewGroup提供的方法,默认返回false,返回true表示拦截。onTouchEvent是View中提供的方法,ViewGroup也有这个方法,view中不提供onInterceptTouchEvent。view中默认返回true,表示消费了这个事件。
View里的onTouchEvent默认返回值是true,当我们手指点击屏幕时候,先调用ACTION_DOWN事件,当onTouchEvent里返回值是true的时候,onTouch会继续调用ACTION_UP事件,
如果onTouchEvent里返回值是false,那么onTouchEvent只会调用ACTION_DOWN而不调用ACTION_UP。
6、异常context启动activiity报错:android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
解决办法:
Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新的task,遇到上面那个异常的,都是因为使用了Context的startActivity方法。解决办法是,加一个flag。
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
7.如果Activity的launchMode为singleTask、singleInstance,那么startActivityForResult将接收不到返回值,不走onActivityResult方法。
8、FragmentTabHost获取fragment实例,当前详细的fragment就是它自己,不用实例化;如:查找fragment的view直接findviewbyid
switch(mTabHost.getCurrentTab()){ case 0:{ // TextView tv = (TextView)findViewById(R.id.tvLeftUpValue); tv.setText(ds.getDataItemS("x00020001")); }}
9、sqlite数据库存储操作比较耗时,利用事务可以大大提高存储效率;
public static void insertAll(List<StructureEntity> items){App.getDbHelper().getDb().beginTransaction();for (StructureEntity structureEntity : items) {insert(structureEntity);}App.getDbHelper().getDb().setTransactionSuccessful();App.getDbHelper().getDb().endTransaction();}
private void scrollToRight(){/** * 需要注意的是,该方法不能直接被调用因为Android很多函数都是基于消息队列来同步,所以需要一部操作, * addView完之后,不等于马上就会显示,而是在队列中等待处理,虽然很快,但是如果立即调用fullScroll, * view可能还没有显示出来,所以会失败应该通过handler在新线程中更新 */Handler handler = new Handler();handler.post(new Runnable() {public void run() {hScrollView.fullScroll(ScrollView.FOCUS_RIGHT);//最右hScrollView.fullScroll(ScrollView.FOCUS_LEFT);//最左hScrollView.fullScroll(ScrollView.FOCUS_DOWN);//底部hScrollView.fullScroll(ScrollView.FOCUS_UP);//顶部}});}
11、java实现selector
StateListDrawable stateListDrawable = new StateListDrawable();//color转drawableColorDrawable drawable = new ColorDrawable(App.getColorID());stateListDrawable.addState(new int[]{android.R.attr.state_checked},drawable);stateListDrawable.addState(new int[]{0}, getResources().getDrawable(R.drawable.swich_right));
12、集合排序
- Collections.sort(mLeDevices, new Comparator<iBeacon>() {
- @Override
- public int compare(iBeacon h1, iBeacon h2) {
- return h2.rssi - h1.rssi; //h1-h2,升序,h2-h1降序
- }
- });
13、android,java代码只能字体大小
setTextSize(int unit, int size)
TypedValue.COMPLEX_UNIT_PX : Pixels
TypedValue.COMPLEX_UNIT_SP : Scaled Pixels
TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels
14、获取WebView当前页面的标题,可能通过对WebChromeClient.onReceivedTitle()方法的重写来实现
WebChromeClient wvcc = new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); Log.d("ANDROID_LAB", "TITLE=" + title); txtTitle.setText("ReceivedTitle:" +title); } };
15、
调用android内置安装的浏览器来打开网页. Uri uri = Uri.parse("http://google.com"); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it);
16、view的touchListener中的event的getRawX()和getRawY()是以屏幕的最左上角开始算的值;
17、IO异常“ read failed: EBADF (Bad file descriptor)”,是因为process在直行脚本的过程中没有执行完成,被destroy()的导致的。
18、当运行一个命令的时候出现rm failed for CoeeRoat.apk, Read-only file system
解决办法:挂载设备 adb shell mount -o remount rw /system
star
tActivityForResult 没有返回结果
startActivityForResult 没有返回结果
startActivityForResult 没有返回结果
- .net小知识点总结
- DataGridView小知识点总结
- GDI+ 小知识点总结
- MYSQL小知识点总结
- 【android】小知识点总结
- 小知识点总结三
- 前端小知识点总结
- 小知识点总结
- 小知识点总结
- Qt 小知识点总结
- java小知识点总结
- iOS小知识点总结
- python小知识点总结
- Unity3D-小知识点总结
- 知识点小总结
- Makefile 小知识点总结
- 小知识点总结
- Android小知识点总结
- 第3周项目3输出最大公约数最小公倍数
- uva 11292
- JavaScript Window - 浏览器对象模型
- 2016.3.17
- TabLayout的简单使用
- 小知识点总结
- [Chromium中文文档]Web安全研究
- 栈的反转
- CSS记录-1-ID和类选择符
- 关于重写父类接口的方法是,冒出去除@Override的解决办法
- 图像形态学处理(3)
- ubuntu下自动安装arm-linux-gcc和arm-linux-g++
- matlab粒子群算法结合模糊聚类分割算法实现图像的分割
- About MMDevice API (MSDN文档理解)