我已经实现了一个侦听器类来检测滚动视图的结尾,参考链接https://gist.github.com/marteinn/9427072
public class ResponsiveScrollView extends ScrollView {
private OnBottomReachedListener listener;
public ResponsiveScrollView(Context context) {
super(context);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
View view = getChildAt(getChildCount()-1);
int diff = view.getBottom()-(getHeight()+getScrollY());
if (diff == 0 && listener!= null) {
listener.onBottomReached(this);
}
super.onScrollChanged(l, t, oldl, oldt);
}
public OnBottomReachedListener getBottomChangedListener() {
return listener;
}
public void setBottomReachesListener(OnBottomReachedListener onBottomReachedListener) {
this.listener = onBottomReachedListener;
}
public interface OnBottomReachedListener {
public void onBottomReached(View view);
}
}
Run Code Online (Sandbox Code Playgroud)
监听器设置为scrollView:
scrollView.setBottomReachesListener(new …Run Code Online (Sandbox Code Playgroud) android scrollview android-scrollview onscrolllistener onscrollchanged
我正在尝试使用下面提到的结构创建 JsonObject。
{
"id": "1",
"name": "XXX",
"age": "30"
}
Run Code Online (Sandbox Code Playgroud)
使用代码,
dynamic sampleJson = new JObject();
sampleJson.Add("id", "1");
sampleJson.Add("name", "XXX");
sampleJson.Add("age", "30");
Run Code Online (Sandbox Code Playgroud)
但问题是 json 结构的开头和结尾出现了额外的大括号,如下所示。
{{
"id": "1",
"name": "XXX",
"age": "30"
}}
Run Code Online (Sandbox Code Playgroud)
我使用所需的 JSON 结构作为 API 的帖子正文,它应该采用 JSON 格式(因此不能使用 ToString() 方法使用 JSON 字符串结构)。如何删除多余的大括号并达到我的要求???
我正在做一个单元测试,其中包括使用XStream解析器解析数据。我使用Mockito来模拟上下文,但是测试用例失败并显示错误日志:
java.lang.RuntimeException: Method newInstance in org.xmlpull.v1.XmlPullParserFactory not mocked. See http://g.co/androidstudio/not-mocked for details.
at org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java)
at com.thoughtworks.xstream.io.xml.XppDriver.createParser(XppDriver.java:57)
at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:54)
at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:65)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1049)
at com.att.apis.metadata.MetadataHandler.execute(MetadataHandler.java:38)
at com.att.apis.services.ServerOperations.executePostOperation(ServerOperations.java:20)
at com.att.framework.helper.request.MetadataAPIHandler.executeAPIRequest(MetadataAPIHandler.java:58)
at com.att.framework.helper.request.MetadataAPIHandlerMokitoTest.executeAPIRequest(MetadataAPIHandlerMokitoTest.java:57)
Run Code Online (Sandbox Code Playgroud)
错误在以下代码块中的行“ response =(MetadataResponse)xs.fromXML(iStream);”处发生
InputStream iStream = responseData.getInputStream();
XStream xs = new XStream();
xs.autodetectAnnotations(true);
xs.alias("helloa", A.class);
xs.alias("hellob", B.class);
xs.alias("helloc",C.class);
response = (MetadataResponse)xs.fromXML(iStream);
Run Code Online (Sandbox Code Playgroud)
按照Android的答案:XmlPullParserFactory.newInstance()创建一个空工厂,我添加了
testOptions {
unitTests.returnDefaultValues = true
}
Run Code Online (Sandbox Code Playgroud)
在build.gradle中。
更新后,出现带有以下日志的NullPointer异常。
java.lang.NullPointerException
at com.thoughtworks.xstream.io.xml.XppDriver.createParser(XppDriver.java:59)
at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:54)
at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:65)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1049)
at com.att.apis.metadata.MetadataHandler.execute(MetadataHandler.java:38)
at com.att.apis.services.ServerOperations.executePostOperation(ServerOperations.java:20)
at com.att.framework.helper.request.MetadataAPIHandler.executeAPIRequest(MetadataAPIHandler.java:58)
at …Run Code Online (Sandbox Code Playgroud) 我有一个Student(name, result, rollNo)对象列表。
List.of(
new Student("Sam", "Pass", "100"),
new Student("Gill", "Not available", "101"),
new Student("Joe", "Fail", "111"),
new Student("Matt", "Fail", "115"),
new Student("Ann", "Pass", "121"),
new Student("Moss", "Pass", "133"),
);
Run Code Online (Sandbox Code Playgroud)
我需要根据以下要求对上面的列表进行排序(我使用的是 Java 11)
最终结果应如下所示。
{"Joe", "Fail", "111"}
{"Matt", "Fail", "115"}
{"Sam", "Pass", "100"}
{"Ann", "Pass", "121"}
{"Moss", "Pass", "133"}
{"Gill", "Not available", "101"}
Run Code Online (Sandbox Code Playgroud)