小编rem*_*til的帖子

onScrollChanged在scrollView中多次触发滚动结束

我已经实现了一个侦听器类来检测滚动视图的结尾,参考链接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

8
推荐指数
2
解决办法
1122
查看次数

创建 JObject C# 时删除双花括号

我正在尝试使用下面提到的结构创建 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 字符串结构)。如何删除多余的大括号并达到我的要求???

c# asp.net json

7
推荐指数
2
解决办法
1万
查看次数

单元测试时出现“未嘲笑XmlPullParserFactory”问题

我正在做一个单元测试,其中包括使用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)

java android unit-testing xstream mockito

3
推荐指数
2
解决办法
666
查看次数

根据对象 JAVA 11 中值的自定义优先级对对象列表进行排序

我有一个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)

  1. 按学生成绩的顺序对列表进行排序,顺序为“不及格”、“通过”、“不可用”(不按字母顺序排列)成绩不及格的学生应排在列表的顶部。然后“通过”,然后“不可用”
  2. 如果多个学生的结果相同,则按rollNo升序排序。

最终结果应如下所示。

{"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)

java sorting list arraylist java-11

3
推荐指数
1
解决办法
2208
查看次数