关闭

MVP简单实现

我这里不多说什么是MVP,重点说怎么写MVP; 说明: MVP和MVC的最大区别:MVP中M和V之间没有直接的联系;V和P之间也是通过接口联系的。 先看看他的目录结构:在这里可以看见model、presenter、view三个包。 然后看看里面的详细目录:好了下面开始创建我们的类了: 1、首先看看view层 我们模仿登录,界面很简单,有两个EditText和一个button。view层有两个东...
阅读(38) 评论(0)

Retrofit2、okHttp3、RxAndroid使用

前三篇讲了RxAndroid 、okHttp3 、Retrofit2的使用,接下来就看看这些东西怎么用吧。还记得okHttp和Retrofit中的返回值Call吗,现在我们就是要把它变为RxAndroid中的被观察者Observable,然后建立和观察者之间的关联。前一篇我们转换了Call的T的类型为自己想要的东西,我们引入了Converter转换器,这里我们引入CallAdapter,来转...
阅读(186) 评论(0)

Retrofit 菜鸟必入

一、添加依赖在Module的build.gradle中添加如下依赖: //retrofit compile 'com.squareup.retrofit2:retrofit:2.0.2' //retrofit String的转换器 compile 'com.squareup.retrofit2:converter-scalars:2.1.0' //retrof...
阅读(189) 评论(0)

Okhttp3菜鸟必入

为啥要学Okhttp3呢,因为Retrofit中用到了,而且它本身也是一个网络框架,不与Retrofit一起用还可以单独用,一石二鸟为啥不学呢。这个相对也比较简单。一、添加依赖 //Okhttp3,后面的那个依赖如果不添加,有说链接不上数据库的,所以还是加上吧,我没添加没啥问题,保险起见 compile 'com.squareup.okhttp3:okhttp:3.3.0' c...
阅读(45) 评论(0)

RxAndroid菜鸟必入

为啥要学RxAndroid呢,因为我要用Retrofit,就这么简单粗暴;除了Rx还有OkHtpp3;接下来都会说的。不要着急~给Android开发者的Rx详解建议看看这篇文章,看过之后会就会都明白了 。一、基本概念和添加依赖 Observer(观察者):事件触发的时候有什么样的行为; Observable(被观察者):决定什么时候触发事件,以及触发怎样的事件; subscribe(订阅):建立O...
阅读(95) 评论(0)

RxAndroid菜鸟必入

为啥要学RxAndroid呢,因为我要用Retrofit,就这么简单粗暴;除了Rx还有OkHtpp3;接下来都会说的。不要着急~ 一、基本概念和添加依赖: Observer(观察者):事件触发的时候有什么样的行为; Observable(被观察者):决定什么时候触发事件,以及触发怎样的事件; subscribe(订阅):建立Observer和Observable之间的关联。 这里...
阅读(54) 评论(0)

android Log日志输出

1、打出的log后面要根上这个log的文件源头的连接,我可以直接点击跳转到log的位置2、log中还能提示我当前的线程名,方便调试3、可以打印出map,json这样的对象4、release包中不打印log5、可以控制log是否显示import android.util.Log; import org.json.JSONArray; import org.json.JSONException; imp...
阅读(69) 评论(0)

折叠式答题样式

先看看实现的效果 实现的效果说明: 答题区域始终在底部,每答一道题就向上添加一个折叠的样式;点击折叠的样式可以对该题进行修改,选中答案就折叠起来,如果,没有选答案,而去选择其他的题进行修改,也将刚才的那个折叠起来,也就是说最多可以有两个折叠的样式存在,点击下面新答的题,注意不是修改题,则折叠上面的所有。直接上代码吧,讲解都在注释中public class FoldTestActivity ext...
阅读(59) 评论(0)

展开样式答题写法

先看看实现的效果: 首先看到的第一反应就是一个ListView或者RecyclerView,但是这个里面要求只能按照顺序答题,也就是说,假设3题没有答,第四题是不能点击的。所以这里我用了LinearLayout模拟了一个ListView。1、自定义一个View,继承LinearLayout实现ListView的功能public class SelfTestView extends LinearLa...
阅读(70) 评论(0)

git常用命令--简单易懂哈哈

1、分支合并情景描述:假设现在处于dev分支,而且有未提交的代码,想要合并到master分支上。按照下面的步骤就可以实现了。git status //先查看一下整体的状态,看看哪些文件修改了 git add //提交修改过的文件,提交所有就git add -A ;提交当前文件夹下的git add .;或者一个文件一个文件提交git add 文件名(完整的) git commit -m "此次提交的说...
阅读(74) 评论(0)

Unable to start activity:UnsupportedOperationException: addView(View, LayoutParams) is not supported

在Stack Overflow 上看到的答案...
阅读(98) 评论(0)

多渠道打包--菜鸟教程

1、首先在AndroidManifest.xml文件中添加如下代码:2、在build.gradle中进行相应的配置android{ ……//其他的配置先省略哈 productFlavors {...
阅读(85) 评论(0)

Scroller使用

使用Scroller并不能得到滑动的效果,它只是“存储“了View滚动的数据; 使View滑动还是要借助scrollTo和scrollBy两个方法来实现的。 public class MyScrollerLinearLayout extends LinearLayout { private Scroller scroller; public MyScrollerLinearLayo...
阅读(148) 评论(0)

Notification使用及打开另一个APP或者Activity

public class MyBroadCastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { NotificationManager manger = (NotificationManager) context....
阅读(156) 评论(0)

ListView嵌套GridView

使用的时候就设置setExpandFully(true)就可以啦public class CustomGridView extends GridView { private int old_count; private android.view.ViewGroup.LayoutParams params; private boolean isExpandFully = fals...
阅读(246) 评论(0)

Activity从屏幕底部滑出、滑入、处理黑色背景和状态栏

1、首先先写两个动画,分别时进入和退出的动画。在res/anim下创建两个文件进入动画entry.xml <translate...
阅读(455) 评论(0)

TabLayout+ViewPager禁止滑动

1、重写ViewPager并重写覆盖ViewPager的onInterceptTouchEvent(MotionEvent arg0)方法和onTouchEvent(MotionEvent arg0)方法,这两个方法的返回值都是boolean类型的,只需要将返回值改为false,那么ViewPager就不会消耗掉手指滑动的事件了,转而传递给上层View去处理或者该事件就直接终止了。2、和TabLay...
阅读(1712) 评论(0)

给ImageView设置点击范围

主要就是自定义View并重写onTouchEvent方法,关键点都在注释中,原理很简单,看看吧嘿嘿。public class RangeClickImageView extends ImageView { private int x;//点击范围的左上角距离屏幕左侧的宽度 private int y;//点击范围的左上角距离屏幕顶部的高度 private int width;/...
阅读(389) 评论(0)

java.net.UnknownHostException异常

遇到这种问题先检查你访问的URL中是否有下划线,比如http://www.ws_haha.com如果有下划线就会出现这个错误。如果不是请参考UnknownHostException异常处理...
阅读(158) 评论(0)

invalidate、postInvalidate和requestLayout区别

1、Invalidate和postInvalidate的区别 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 鉴于此,如果要使用invalidate的刷新,那我们就得配合handler的使用,使异步非ui线程转到ui线程中调用,如果...
阅读(224) 评论(0)
109条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:62383次
    • 积分:1623
    • 等级:
    • 排名:千里之外
    • 原创:94篇
    • 转载:15篇
    • 译文:0篇
    • 评论:23条
    文章分类
    最新评论