温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

自己做项目中遇到的一些常见问题及解决方法

发布时间:2020-08-03 09:00:08 来源:网络 阅读:4560 作者:胡文城 栏目:移动开发

1) 数据来自于服务器和数据库, 可能出现FC问题

日志: java.lang.IllegalStateException: The content of the adapter has changed but                 ListView did not receive a notification. Make sure the content of your adapter is not   modified from a background thread, but only from the UI thread.

原因: adapter中的数据(List)被改变,如果较长时间(几十毫秒)没有通知ListView

解决思路: list一旦改变,立即通知ListView


2) Unable to resolve target 'android-14'

原因: 开发者开发项目的环境(Android版本)不同,

解决: 修改Android编译版本


3) Found 2 versions of android-support-v4.jar in the dependency list      

原因: 项目和库的supportv4.jar冲突

解决: 删除项目中的jar包,保留库中的jar(最新)


4)在Activity的类中声明成员变量, String[] menuStr = getResources().getStringArray(R.array.menu_str);

运行时抛出空指针异常

背景知识: 类的初始化顺序,先成员再构造.

原因: <init> 在初始化类的成员变量时出错

解决: 所有的资源, getResource()方法必须在onCreate中调用


5) 切换滑动菜单, 滑动Tab中的片段无法显示

原因: // 注意: 在Fragment中必须使用childFragmentManger

FragmentManager fm = getChildFragmentManager();


6) 无法联想到getChildFragmentManager()

原因: supportV4包版本较旧

从目录中拷贝: \adt-bundle-windows-x86-20131030\sdk\extras\android\support\v4\android-support-v4.jar

7) 解决滑动菜单和ViewPager水平滑动事件冲突问题

public void setMenuDrawerEnable(boolean enable) {

if (enable) {

mDrawer.setTouchMode(MenuDrawer.TOUCH_MODE_FULLSCREEN);

} else {

mDrawer.setTouchMode(MenuDrawer.TOUCH_MODE_BEZEL);

}

}


8)menudrawer与ViewPager和banner之间的嵌套冲突问题(2.3/和滑动菜单冲突)

   原因: 内层控件得到事件, 然后事件会传递到外层控件和布局

   思路:

   a) 直接将ChildViewPager.java文件导入到应用中

   b) 将<android.support.v4.view.ViewPager

       android:id="@+id/pager"

       android:layout_width="match_parent"

       android:layout_height="140dp"

       android:background="#C0C0C0" >

       </android.support.v4.view.ViewPager>

   修改成

       <com.duobei.widget.ChildViewPager

       android:id="@+id/pager"

       android:layout_width="match_parent"

       android:layout_height="140dp"

       android:background="#C0C0C0" >

       </com.duobei.widget.ChildViewPager>

   c) 在成员变量中将private ViewPager mPager改为private ChildViewPager mPager;

   d)在initViewPager(layout)实现mpager的监听事件implements OnSingleTouchListener

      mPager.setOnSingleTouchListener(this)

   e)重写onsingletouch就可以实现判断是哪张图片的监听事件了

      @Override

      public void onSingleTouch() {

      int currentItem = mPager.getCurrentItem();

      Toast.makeText(getActivity(), "touchtouch"+currentItem%5,   Toast.LENGTH_SHORT).show;}




向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI