我开始了一个针对Android Lollipop(21)的项目,并创建了一个自定义视图.当我为视图生成构造函数时,我得到了一个新的第4个构造函数,它比其他构造函数占用更多的参数.
public class FooView extends FrameLayout {
public FooView(Context context) {
super(context);
}
public FooView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public FooView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
// This 4th constructor
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public FooView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么我们需要它?如果我删除这个构造函数并在Lollipop上运行应用程序会发生什么?
在我开始编写代码之前,我将Android Studio升级到0.5.0没有任何问题.这太奇怪了.自动代码完成不再起作用.没有显示下拉列表.更糟糕的是,我故意写错了语法,但IDE无法自动发出警报,因为它仍然在滚动线(右侧)上进行.
我确信我已经改变了'com.android.tools.build:gradle:0.9.+'
.
有帮助吗?
更新:
我想通了.原因是,我不小心打开了File> Power Save Mode,它阻止了自动完成,而不是因为Android Studio 0.5.0本身.
当我有一个JsonObject
,为了从中检索一个指定的元素成员,会有几个方法,例如,get()
和其他getAsXXX()
:
JsonPrimitive childNode1 = parent.getAsJsonPrimitive("key1);
JsonArray childNode2 = parent.getAsJsonArray("key2);
JsonElement childNode3 = parent.get("key3);
Run Code Online (Sandbox Code Playgroud)
我的问题是,isJsonNull()
检查元素是否存在的方法是什么?我对Json的文档感到有些困惑.