Android 积累一些常见的开发异常与问题
来源:互联网 发布:实木 知乎 编辑:程序博客网 时间:2024/05/16 06:25
1.使用PullToRefresh库的时候,想让其自动刷新(setRefreshing)不起效果
下面的解决方式,当设定的时间小的时候,同样也会导致刷新失败(这里设置了1000ms)
/** * 自动刷新 */ private void autoRefresh() { gv_tuijian.postDelayed(new Runnable() { @Override public void run() { gv_tuijian.setRefreshing(true); } }, 1000); } /** * 刷新结束 */ private void autoComplete() { gv_tuijian.postDelayed(new Runnable() { @Override public void run() { gv_tuijian.onRefreshComplete(); } }, 1000); }
2. Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its
子线程不能跟新UI的问题,一般用rxjava可以快速方便的切换线程,从而解决问题
Observable.timer(5000, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Long>() { @Override public void call(Long aLong) { if (rl_forward.getVisibility() == VISIBLE) { rl_forward.setVisibility(GONE); } } });
3.PopupWindow显示的时候,为什么其余的组件不可点击
new PopupWindow 的时候如果只传入三个参数,默认是获取焦点的
gradePop = new PopupWindow( view,//要显示的view layoutParams.width,//popupwindow's width WindowManager.LayoutParams.WRAP_CONTENT,//popupwindow's height false//是否可以获取焦点 );
4.listview嵌套webview,滑动时,有大量空白的问题
解决方案一
我的解决方案:我修改了我的适配器里的布局文件,把里面的一些match_parent改成自适应,虽然改了之后有爆红的问题,但编译无碍,问题解决
我改之前的布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/buzhi_bg_content" android:orientation="vertical"> <LinearLayout android:id="@+id/ll_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="63" android:orientation="vertical"> <TextView android:id="@+id/tv_no" android:layout_width="24dp" android:layout_height="24dp" android:layout_gravity="center_horizontal" android:layout_marginLeft="10dp" android:layout_marginTop="25dp" android:background="@drawable/checkp_bg_xuhao" android:gravity="center" android:textColor="#666666" android:textSize="16sp" /> </LinearLayout> <RelativeLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="560" android:orientation="vertical"> <WebView android:id="@+id/wb_timu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp"></WebView> <RelativeLayout android:id="@+id/rl" android:layout_width="match_parent" android:layout_height="match_parent"></RelativeLayout> </RelativeLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="200" android:orientation="vertical"> <costomview.circleprogressview.CircleProgressView android:id="@+id/cpv" android:layout_width="@dimen/item_tongjiadapter_cpv_wh" android:layout_height="@dimen/item_tongjiadapter_cpv_wh" android:layout_gravity="center_horizontal" android:layout_marginTop="10dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="9dp" android:gravity="center" android:text="正确率" android:textColor="#999999" android:textSize="@dimen/item_tongjiadapter_tv" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center" android:text="A" android:textColor="#666666" android:textSize="@dimen/item_tongjiadapter_tv2_textsize" /> <ProgressBar android:id="@+id/pb_a" style="?android:attr/progressBarStyleHorizontal" android:layout_width="@dimen/item_tongjiadapter_pb_layout_width" android:layout_height="5dp" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:max="100" android:progress="40" android:progressDrawable="@drawable/progressbar_horizontal_2" /> <TextView android:id="@+id/tv_a" android:layout_width="@dimen/item_tongjiadapter_tv_layout_width" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:gravity="center" android:textColor="#999999" android:textSize="@dimen/item_tongjiadapter_tv" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:gravity="center" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center" android:text="B" android:textColor="#666666" android:textSize="@dimen/item_tongjiadapter_tv2_textsize" /> <ProgressBar android:id="@+id/pb_b" style="?android:attr/progressBarStyleHorizontal" android:layout_width="@dimen/item_tongjiadapter_pb_layout_width" android:layout_height="5dp" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:max="100" android:progress="40" android:progressDrawable="@drawable/progressbar_horizontal_2" /> <TextView android:id="@+id/tv_b" android:layout_width="@dimen/item_tongjiadapter_tv_layout_width" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:gravity="center" android:textColor="#999999" android:textSize="@dimen/item_tongjiadapter_tv" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:gravity="center" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center" android:text="C" android:textColor="#666666" android:textSize="@dimen/item_tongjiadapter_tv2_textsize" /> <ProgressBar android:id="@+id/pb_c" style="?android:attr/progressBarStyleHorizontal" android:layout_width="@dimen/item_tongjiadapter_pb_layout_width" android:layout_height="5dp" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:max="100" android:progress="40" android:progressDrawable="@drawable/progressbar_horizontal_2" /> <TextView android:id="@+id/tv_c" android:layout_width="@dimen/item_tongjiadapter_tv_layout_width" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:gravity="center" android:textColor="#999999" android:textSize="@dimen/item_tongjiadapter_tv" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:gravity="center" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center" android:text="D" android:textColor="#666666" android:textSize="@dimen/item_tongjiadapter_tv2_textsize" /> <ProgressBar android:id="@+id/pb_d" style="?android:attr/progressBarStyleHorizontal" android:layout_width="@dimen/item_tongjiadapter_pb_layout_width" android:layout_height="5dp" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:max="100" android:progress="40" android:progressDrawable="@drawable/progressbar_horizontal_2" /> <TextView android:id="@+id/tv_d" android:layout_width="@dimen/item_tongjiadapter_tv_layout_width" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:gravity="center" android:textColor="#999999" android:textSize="@dimen/item_tongjiadapter_tv" /> </LinearLayout> </LinearLayout> </LinearLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/buzhi_bg_content_bottom"> <RelativeLayout android:id="@+id/rl_control" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:paddingBottom="5dp" android:paddingTop="5dp"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:gravity="center" android:text="查看答案解析" android:textColor="#666666" android:textSize="14sp" /> <ImageView android:id="@+id/iv_flag" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="4dp" android:layout_toRightOf="@+id/tv" android:scaleType="fitCenter" android:src="@mipmap/buzhi_content_arrow01" /> </RelativeLayout> <TextView android:id="@+id/tv_divider" android:layout_width="match_parent" android:layout_height="1dp" android:layout_below="@+id/rl_control" android:background="@drawable/home_content_dl"></TextView> <LinearLayout android:id="@+id/ll_answer" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/tv_divider" android:orientation="vertical" android:paddingBottom="15dp" android:paddingLeft="19dp" android:paddingTop="15dp" android:visibility="gone"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="【答案】" android:textColor="#505050" android:textSize="14sp" /> <WebView android:id="@+id/wb_daan" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="10dp" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="【解析】" android:textColor="#505050" android:textSize="14sp" /> <WebView android:id="@+id/wb_jiexi" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" /> </LinearLayout> </LinearLayout> </RelativeLayout></LinearLayout>
改之后的布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/buzhi_bg_content" android:orientation="vertical"> <LinearLayout android:id="@+id/ll_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="63" android:orientation="vertical"> <TextView android:id="@+id/tv_no" android:layout_width="24dp" android:layout_height="24dp" android:layout_gravity="center_horizontal" android:layout_marginLeft="10dp" android:layout_marginTop="25dp" android:background="@drawable/checkp_bg_xuhao" android:gravity="center" android:textColor="#666666" android:textSize="16sp" /> </LinearLayout> <RelativeLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="560" android:orientation="vertical"> <WebView android:id="@+id/wb_timu" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp"></WebView> <RelativeLayout android:id="@+id/rl" android:layout_width="match_parent" android:layout_height="match_parent"></RelativeLayout> </RelativeLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="200" android:orientation="vertical"> <costomview.circleprogressview.CircleProgressView android:id="@+id/cpv" android:layout_width="@dimen/item_tongjiadapter_cpv_wh" android:layout_height="@dimen/item_tongjiadapter_cpv_wh" android:layout_gravity="center_horizontal" android:layout_marginTop="10dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="9dp" android:gravity="center" android:text="正确率" android:textColor="#999999" android:textSize="@dimen/item_tongjiadapter_tv" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center" android:text="A" android:textColor="#666666" android:textSize="@dimen/item_tongjiadapter_tv2_textsize" /> <ProgressBar android:id="@+id/pb_a" style="?android:attr/progressBarStyleHorizontal" android:layout_width="@dimen/item_tongjiadapter_pb_layout_width" android:layout_height="5dp" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:max="100" android:progress="40" android:progressDrawable="@drawable/progressbar_horizontal_2" /> <TextView android:id="@+id/tv_a" android:layout_width="@dimen/item_tongjiadapter_tv_layout_width" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:gravity="center" android:textColor="#999999" android:textSize="@dimen/item_tongjiadapter_tv" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:gravity="center" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center" android:text="B" android:textColor="#666666" android:textSize="@dimen/item_tongjiadapter_tv2_textsize" /> <ProgressBar android:id="@+id/pb_b" style="?android:attr/progressBarStyleHorizontal" android:layout_width="@dimen/item_tongjiadapter_pb_layout_width" android:layout_height="5dp" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:max="100" android:progress="40" android:progressDrawable="@drawable/progressbar_horizontal_2" /> <TextView android:id="@+id/tv_b" android:layout_width="@dimen/item_tongjiadapter_tv_layout_width" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:gravity="center" android:textColor="#999999" android:textSize="@dimen/item_tongjiadapter_tv" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:gravity="center" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center" android:text="C" android:textColor="#666666" android:textSize="@dimen/item_tongjiadapter_tv2_textsize" /> <ProgressBar android:id="@+id/pb_c" style="?android:attr/progressBarStyleHorizontal" android:layout_width="@dimen/item_tongjiadapter_pb_layout_width" android:layout_height="5dp" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:max="100" android:progress="40" android:progressDrawable="@drawable/progressbar_horizontal_2" /> <TextView android:id="@+id/tv_c" android:layout_width="@dimen/item_tongjiadapter_tv_layout_width" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:gravity="center" android:textColor="#999999" android:textSize="@dimen/item_tongjiadapter_tv" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="6dp" android:gravity="center" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center" android:text="D" android:textColor="#666666" android:textSize="@dimen/item_tongjiadapter_tv2_textsize" /> <ProgressBar android:id="@+id/pb_d" style="?android:attr/progressBarStyleHorizontal" android:layout_width="@dimen/item_tongjiadapter_pb_layout_width" android:layout_height="5dp" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:max="100" android:progress="40" android:progressDrawable="@drawable/progressbar_horizontal_2" /> <TextView android:id="@+id/tv_d" android:layout_width="@dimen/item_tongjiadapter_tv_layout_width" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:gravity="center" android:textColor="#999999" android:textSize="@dimen/item_tongjiadapter_tv" /> </LinearLayout> </LinearLayout> </LinearLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/buzhi_bg_content_bottom"> <RelativeLayout android:id="@+id/rl_control" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:paddingBottom="5dp" android:paddingTop="5dp"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:gravity="center" android:text="查看答案解析" android:textColor="@drawable/textcolor_style_01" android:textSize="18sp" /> <ImageView android:id="@+id/iv_flag" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="6dp" android:layout_toRightOf="@+id/tv" android:scaleType="fitCenter" android:src="@mipmap/buzhi_content_arrow01" /> </RelativeLayout> <TextView android:id="@+id/tv_divider" android:layout_width="match_parent" android:layout_height="1dp" android:layout_below="@+id/rl_control" android:background="@drawable/home_content_dl"></TextView> <LinearLayout android:id="@+id/ll_answer" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/tv_divider" android:orientation="vertical" android:paddingBottom="15dp" android:paddingLeft="19dp" android:paddingTop="15dp" android:visibility="gone"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="【答案】" android:textColor="#505050" android:textSize="14sp" /> <WebView android:id="@+id/wb_daan" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="10dp" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="【解析】" android:textColor="#505050" android:textSize="14sp" /> <WebView android:id="@+id/wb_jiexi" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" /> </LinearLayout> </LinearLayout> </RelativeLayout></LinearLayout>
5.如何在广播接收器里展示Dialog
batteryDialog = new NiftyDialogBuilder(context, 340, 225,""); View dialogView = LayoutInflater.from(context).inflate(R.layout.dialog_battery, null); batteryDialog.setCustomView(dialogView, context); batteryDialog.setCancelable(true); batteryDialog.isCancelableOnTouchOutside(true); batteryDialog.withEffect(Effectstype.Slit); //广播里展示Dialog需要设置 batteryDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); batteryDialog.show(); Logger.i("弹出充满电的框");
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
6.调用系统相机相册
//相册 RxView.clicks(iv_xiangce).throttleFirst(2, TimeUnit.SECONDS).subscribe(new Action1<Void>() { @Override public void call(Void aVoid) { /* Intent intent = new Intent(); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image*//*"); if (Build.VERSION.SDK_INT < 19) { intent.setAction(Intent.ACTION_GET_CONTENT); } else { intent.setAction(Intent.ACTION_OPEN_DOCUMENT); } startActivityForResult(intent, 0x102);*/ Intent albumIntent = new Intent(Intent.ACTION_PICK, null); albumIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); startActivityForResult(albumIntent,0x102); } });RxView.clicks(iv_camera).throttleFirst(2, TimeUnit.SECONDS).subscribe(new Action1<Void>() { @Override public void call(Void aVoid) { //调用相机拍照 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 1); } });
6.调用系统相册,不选取图片,只是调系统相册(解决打开系统相册,选取图片,闪退)
ProjectUtils.runApp("com.android.gallery3d","com.android.gallery3d.app.GalleryActivity",MoreActivity.this,"系统相册");
public static void runApp(String packName, String className, Context context, String apkName) { try { Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentName(packName, className); intent.setComponent(cn); context.startActivity(intent); } catch (Exception e) { Toast.makeText(context, apkName + "未安装!", Toast.LENGTH_SHORT).show(); } }
0 0
- Android 积累一些常见的开发异常与问题
- Android开发中出现异常问题的积累
- android 积累一些RecycylerView的常见用法
- android 常见异常错误积累
- android开发异常积累
- iOS开发中常见的一些异常
- Android开发常见Error积累
- android 常见的一些异常和错误
- java异常的写法 及一些常见的异常问题
- Android Studio0.5.5 一些常见的问题分析与整理
- android开发问题积累
- Android 开发问题积累
- Java 开发中常见的异常问题
- Android开发常见异常
- android 积累okhttp3与retrofit2常见的使用方法
- Android常见的Intent积累
- Android Eclipse工程开发中的常见调试问题(二)android.os.NetworkOnMainThreadException 异常的解决办法
- JavaScript开发的一些积累
- 使用直接导出模式direct=y exp比传统模式导出快一倍
- mybatis 联合查询注意事项
- SpringMVC 基础教程 简单入门实例
- 1-1Dynamic Action(DMI)
- java后台的mysql执行语句
- Android 积累一些常见的开发异常与问题
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- Android音频底层调试-基于tinyalsa
- linux命令大全
- 分布式系统常见的事务处理机制
- PHP文件的锁定机制
- 单链表的快速排序
- Ehcache(02)——ehcache.xml配置简介
- JAVA开发之 4-编写我的第一个程序(helloworld)