java - Android - 如何在 Volley 请求后重新加载数据

标签 java android asynchronous android-volley notifydatasetchanged

我的问题很简单。我有一个简单的 fragment ,它不是列表,只是 5 个 TextView。此 fragment 运行后,它会向 API 端点发出 volley 请求,在 onCreateView 方法完成后响应到达该端点。通常,人们会使用 adapter.notifyDataSetChanged() 这样即使新数据在正常 fragment 生命周期结束后到达也可以显示。问题是因为我的 fragment 不是列表,所以它没有适配器。在没有适配器的情况下如何使用 notifyDataSetChanged() ?我应该寻找什么解决方案来解决这个问题?任何反馈将不胜感激。

最佳答案

假设你有一个领域

private TextView textView1;

某处你有一个用于 Volley 的 StringRequest,然后在 Response.ListeneronResponse 中,只需设置 TextView 的文本.

public void onResponse(String response) {
    textView1.setText(response);
}

如果您有一个单独的类来处理您的 Volley 请求,那么您应该为您的方法添加一个参数,用于 Response.Listener

例如

MyServer.doLogin("http://myurl.com/login", "username:password", new Response<String>.Listener() {
    public void onResponse(String response) {
        // Do something here
    }
};

其中 MyServer.doLogin 可能是这样的(注意:这是一个例子,它可能无法编译)

public void doLogin(String url, String cred, Response<String>.Listener callback) {
    StringRequest request = new StringRequest(
        url, 
        Request.GET, 
        callback,
        new Response.ErrorListener() { ... }
    );

    addToRequestQueue(request); 
}

关于java - Android - 如何在 Volley 请求后重新加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36025504/

相关文章:

java - 从服务器获取自动响应

android - 隐藏滚动条 Android KitKat 4.4

java - 执行异步任务的 java 方法的返回值

asynchronous - Mule ESB 3.3 如何同时启动事务流

java - : "Resolver". java.lang.NullPointerException 期间发生内部错误

java - 如何在 laravel 中返​​回 Content 类型?

java - 在 Sub-Fragment 中,当 webview 无法返回时,如何重定向到 Main-Fragment 或 Home-Fragment

android - Firebase 动态链接打开特定 Activity

android - Gradle:将参数传递给 `apply from: <file>`

ios - DispatchQueue 不等待异步函数完成