提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Android开发问题

  • 1.Fragment 内findViewByid空指针问题
  • 2.getApplication 空指针问题
  • 3.NullPointerException异常:
  • 4.Can't toast on a thread that has not called Looper.prepare()问题
  • 5.okhttp3 response内的数据无法在外部使用
  • 6.TabLayout 加载适配器后TabItem不显示问题
  • 7.Adapter内设置字体颜色无效


提示:以下是本篇文章正文内容,下面案例可供参考

1.Fragment 内findViewByid空指针问题

Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference

解决方法:

 public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentView v=inflater.inflate(R.layout.fragment_main, container, false);smartRefreshLayout= v.findViewById(R.id.smart_refreshLayout);grid_div=v.findViewById(R.id.grid_divs);tv_add_dev =v.findViewById(R.id.tv_add_dev);layout_2_set_location =v.findViewById(R.id.layout_2_set_location);return v;}

2.getApplication 空指针问题

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()’ on a null object reference

解决办法:定义可以在OnCreat外,但FindViewByid要在Oncreat内。

3.NullPointerException异常:

FragmentManager.beginTransaction()
Fragment fragment =this.getsupportFragmentManager();

4.Can’t toast on a thread that has not called Looper.prepare()问题

问题描述:

 java.lang.NullPointerException: Can't toast on a thread that has not called Looper.prepare()

如果在一个线程中没有调用Looper.prepare(),就不能在该线程中创建Toast。这个问题是因为在子线程中弹出Toast导致的。

解决办法:先调用Looper.prepare();再调用Toast.makeText().show();最后再调用Looper.loop();

Looper.prepare();
Toast.makeText(Modify_pho_or_passActivity.this,"修改成功!",Toast.LENGTH_LONG).show();
Looper.loop();

5.okhttp3 response内的数据无法在外部使用

问题描述:在okhttp中我们成功的访问后台,然后从onResponse中获得了返回的json数据),这个返回的数据只能在onResponse方法内调用,放到方法外这个数据就无法使用,追根揭底就是okhttp是异步请求,你没办法将异步请求的结果放到主线程中使用。

自己使用的RecycleView,在onResponse外使用,无数据进adapter;在onResponse内使用,提示

Only the original thread that created a view hierarchy can touch its views.

异常的意思是说只有创建这个view的线程才能操作这个 view,普通会认为是将view创建在非UI线程中才会出现这个错误。


解决办法:在onResponse内创建了runOnUiThread,写入recycleView的配置,将其在主线程中操作。


@Override
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {final String responseData = response.body().string();//解析jsondevices = JsonManager.parseJsonArray(responseData, DeviceEntity.class);// Log.e("devices",devices.get(0).getDevicename());runOnUiThread(new Runnable() {@Overridepublic void run() {if(devices!=null){rv_devices_list.setLayoutManager(new LinearLayoutManager(DeviceManagerActivity.this));devListAdapter =new DevListAdapter(devices);rv_devices_list.setAdapter(devListAdapter);// rv_devices_list.setVisibility(View.VISIBLE);}}});}});

6.TabLayout 加载适配器后TabItem不显示问题

问题描述:
在XMl文件中静态加载TabItem,tabLayout.setupWithViewPager(viewPager)之前可以显示,之后就不能显示。

原因及解决办法:
https://blog.csdn.net/sundy_tu/article/details/52682246

最好从PageAdapter内动态添加TabItem。

 @Nullable@Overridepublic CharSequence getPageTitle(int position) {title.clear();title.add("查询数据");title.add("统计数据");return title.get(position);}

7.Adapter内设置字体颜色无效

参考链接
有效:
holder.tv_1.setTextColor(Color.parseColor(“#FF0000”));
无效:
holder.tv_1.setTextColor(R.color.red);

Android 开发问题相关推荐

  1. Android环境搭建和Android HelloWorld—Android开发环境搭建

    Android_Android开发环境搭建-搭建Android的开发环境 1.我考虑先下载JDK7.0,在JDK的安装中,考虑一般SDK都是向上兼容的,于是选择了最高的版本7.0 这里是我总结的详细的 ...

  2. java安卓开发工具_推荐几个非常实用的Android开发工具

    工欲善其事,必先利其器.我们进行Android开发也要有好的开发工具辅助才能更好更高效的完成各种开发,为用户提供更实用的应用程序.本文就为大家推荐几个非常实用的Android开发工具,及几个常用的编辑 ...

  3. android 网络编程实现,Android开发使用HttpURLConnection进行网络编程详解【附源码下载】...

    本文实例讲述了Android开发使用HttpURLConnection进行网络编程.分享给大家供大家参考,具体如下: --HttpURLConnection URLConnection已经可以非常方便 ...

  4. linux 浏览器源码下载,Android开发:图片浏览器源码

    Android 图片浏览器源码,是你学习Android很好的例子,希望对你的学习有帮助. main.xml android:layout_width="fill_parent" a ...

  5. 2017-2018-2 20165236 实验四《Android开发基础》实验报告

    2017-2018-2 20165236 实验四<Android开发基础>实验报告 一.实验报告封面 课程:Java程序设计       班级:1652班       姓名:郭金涛     ...

  6. Android开发权威指南(第2版)新书发布

    <Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...

  7. indows上的android开发环境软件架构5

    (二)实验要求: ? 修改按下button 显示的内容中添加上自己的学号姓名: ? 添加一个按钮,按钮名称为"退出",并且为这个按钮添加事件代码,使得点击这个按钮后退 出程序.事件 ...

  8. 折叠屏就要来了,适配逼死 Android 开发?

    1. 异型屏还没适配好,折叠屏就要来了,Android 的碎片化,让开发者又多掉了不少头发. 北京时间 11 月 8 日,三星在旧金山向开发者发布了一款可折叠屏幕手机.并表示,新技术需要开发者调整其 ...

  9. 《ArcGIS Runtime SDK for Android开发笔记》——(6)、基于Android Studio的ArcGIS Android工程结构解析...

    1.前言 Android Studio 是第一个Google官方的 Android 开发环境.其他工具,例如 Eclipse,在 Android Studio 发布之前已经有了大规模的使用.为了帮助开 ...

  10. FlashDevelop Android开发.md

    2019独角兽企业重金招聘Python工程师标准>>> FlashDevelop Android 开发 > author: gwang(wanggangzero@qq.com) ...

最新文章

  1. TYVJ1427 小白逛公园
  2. 圆形卡尺测量后创建模板
  3. dell增强保护套装还原失效_汕头长安欧尚汽车音响改装升级,还原真实音色
  4. WINCE的BIB文件解析
  5. css透明度的设置 (兼容所有浏览器)
  6. URL Routing
  7. mysql 备份还原
  8. 微服务升级_SpringCloud Alibaba工作笔记0010---Gateway配置动态路由
  9. 【转载】8天学通MongoDB——第八天 驱动实践
  10. 黄光裕出来后,首先会做这三件事(转)
  11. 通通玩blend美工(1)——荧光Button
  12. ajax zlib,jQuery递增地读取Ajax流吗?
  13. 计算机软件服务可以自开专票,可以自开专票的小规模纳税人到底有几类?
  14. 我的家乡html网页设计,创作一个以“我的家乡”为主题的网站
  15. Intouch System Platform IDE
  16. 2018/9/18单舵轮AGV项目笔记之二
  17. 计算机如何更改扩展名,文件扩展名怎么改,怎样更改文件的扩展名
  18. Agile PLM 表结构说明
  19. virtualbox虚拟机窗口大小调整
  20. Vue移动端项目(二)

热门文章

  1. 程序员计算器 android6,程序员计算器
  2. 实时帧数手机_小米部分高刷新率机型吃鸡强制开启120帧
  3. 中山大学计算机学院离散数学,《离散数学》课程习题与解答(2011级使用)中山大学计算机科学系_推荐.pdf...
  4. NumPy的详细教程(官网手册翻译)
  5. java home_JAVA_HOME配置
  6. Linux/Centos: readelf命令使用说明
  7. cuda和cudnn下载安装
  8. JAVA如何实现视频在线播放(MP4文件在线播放)
  9. java acr122 读取数据_acr122读写器软件下载
  10. Winform开发框架主界面设计展示