小编gio*_*ine的帖子

Android:如何制作具有稳定ID的适配器?

我已经从BaseAdapter扩展了我自己的自定义适配器以显示listview等等......

我希望它支持单选和多选,所以它必须有稳定的ID.我已经检查过ADAPTER.hasStableIds(),结果是假的.

我已经克服了这种方法,试图在没有运气的情况下获得稳定的id.

public long getItemId(int position) {
   return (long) getItem(position).hashCode();
}
Run Code Online (Sandbox Code Playgroud)

知道怎么做吗?谢谢!

android listview adapter

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

如何设置ListFragment的ListView的样式

我想保留这些方法:

setListShown(true);
setListShownNoAnimation(true);
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用

onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
Run Code Online (Sandbox Code Playgroud)

Fragment使用自定义样式布局来扩充,以前的方法无法使用,并显示此异常:

07-30 20:17:46.937: E/AndroidRuntime(1374): Caused by: java.lang.IllegalStateException: Can't be used with a custom content view
07-30 20:17:46.937: E/AndroidRuntime(1374):     at android.support.v4.app.ListFragment.setListShown(ListFragment.java:282)
07-30 20:17:46.937: E/AndroidRuntime(1374):     at android.support.v4.app.ListFragment.setListShown(ListFragment.java:258)
Run Code Online (Sandbox Code Playgroud)

那么,可能的解决方案是什么?

编辑:

Fragment使用装载机来填充它ListView从一个数据库.所以这就是我想保留这些方法的原因,这里需要它们:

public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
        mAdapter.swapCursor(data);  
        if (isResumed()) {
            setListShown(true);
        } else {
            setListShownNoAnimation(true);
        }
    }
Run Code Online (Sandbox Code Playgroud)

最简单的解决方案是根据ListFragment源代码创建自己的代码,并将进度窗口小部件添加到布局中以显示相同的效果.到现在为止,我会删除这些行,因为我被告知.如果我进行修改,我会将其粘贴到此处.

android listview android-listfragment

5
推荐指数
2
解决办法
9836
查看次数

速率限制React客户端向API发出的请求数量

我在客户端中使用 React 和 fetch 向Discogs API发出请求。在此 API 中,每分钟最多有 60 个请求的限制。为了管理此Discogs,在响应标头中添加自定义值,例如“剩余请求”、“已使用的请求”或“最大允许请求”,但由于cors,这些标头无法读取。

因此,我决定为此 API 创建一个请求包装器,从中我可以:

  • 定义时间窗口(在本例中为 60 秒)。
  • 定义在此时间窗口内允许执行的最大请求数。
  • 根据限制对接收到的请求进行排队以进行处理。
  • 能够取消请求并将其从队列中拉出。

我已经成功地使用单例对象完成了一个工作示例,其中作业排队并通过 setTimeout函数延迟请求的调用进行管理。

当使用简单的回调时,这对我有用,但我不知道如何向 React 组件返回值以及如何使用 Promises 而不是回调(获取)来实现它。

我也不知道如何取消超时或来自反应组件的获取请求

你可以查看这个例子,我已经简化了它。我知道这也许不是最好的方法,或者这段代码很糟糕。这就是为什么任何有关它的帮助或指导将非常感激。

javascript reactjs discogs-api

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

如何使用 next-connect 处理 Next.js 中 getServerSideProps 内的错误

我使用 Next.js 和next-connect来处理中间件。

但是当我在内部使用多个中间件时,我在尝试处理错误时遇到了问题getServerSideProps

这是我在 getServerSideProps 中的代码,我刚刚使用几个中间件创建了一个处理程序,然后所有中间件都运行,身份验证成功,用户数据应该传递到响应,但如果有任何失败,应该捕获错误并返回页面的重定向'/login'

import nextConnect from 'next-connect';
import { openDBConnection, retrieveUserInfo } from '@/middlewares/database';
import { verifySessionCookie } from '@/middlewares/firebaseSession';
...
    export const getServerSideProps = async ({ req, res }) => {
        const handler = nextConnect()
            .use(verifySessionCookie)
            .use(openDBConnection)
            .use(retrieveUserInfo);
        try {
            await handler.run(req, res);
            return {
                props: {
                    user: req.user,
                },
            };
        } catch (e) {
            console.log(e);
            return {
                redirect: {
                    destination: '/login',
                    permanent: false,
                }
            };
        }
    }
Run Code Online (Sandbox Code Playgroud)

我没有在任何中间件中定义任何 …

reactjs next.js next-connect

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

删除文件及其父目录(如果它们为空).(Java)

我正在尝试一个简单的方法,删除文件的上层目录,如果它们是空的,直到它到达基本目录,但我不能使它工作.

它删除文件及其父目录,但是,它的下一个父项在它抛出时不会被删除DirectoryNotEmptyException.它确实是空的,因为只有一个子目录,并且它在上一次迭代中被删除.

因此,文件被删除,其父项被删除,并在那里停止,不再删除上层目录.

编辑:(修改后的代码)

似乎延迟删除目录,因此在下一次检查目录的空白状态时,前一个目录尚未删除.所以我添加了一个while循环来检查,直到该目录不存在.我不知道这是不是一个坏技术,但它适合我的需要.

public static void removeFileAndParentsIfEmpty(Path path) throws IOException {
    if(path == null || path.endsWith(FilesPath.BILLS_DIRECTORY)) {
        return;
    }
    if (Files.isRegularFile(path)){
        Files.deleteIfExists(path);
    } else if (Files.isDirectory(path)){
        if(path.toFile().list().length == 0){
            Files.delete(path);
            while(Files.exists(path));
        }else{
            return;
        }
    } else {
        return;
    }
    removeFileAndParentsIfEmpty(path.getParent());
}
Run Code Online (Sandbox Code Playgroud)

如果有人能提供更好的解决方案,那么这个问题仍然需要批准.谢谢.

java java-io java-7

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

如何创建要在Java Swing组件中显示的格式化文本(JTextPane,JEditorPane ...)

我在任何地方都进行了搜索和研究,找到了一个没有结果的答案.所以我再次寻求帮助.

我想在桌面java swing应用程序中显示格式化文本.该文本将在一些变量对象的基础上编程生成,并且不可编辑.

我不知道是否最好使用JTextPane或JEditorPane,或者是什么.问题是我找不到任何解释如何使用它们的手册或教程.我是否必须创建HTMLDocument才能插入文本?我该如何创建它?...

在这种情况下,是显示文本的正确方法吗?或者我可以使用表格或标签或类似的东西.

我需要你的一些建议,如果有一些地方我可以学习如何去做,请告诉我.

java swing text jtextpane jeditorpane

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