收藏的文件(pdf, word)无法点击查看

gaocunbin 2021-5-19 580

public class FavFileContentViewHolder extends FavContentViewHolder {

...

}

FavFileContentViewHolder里面, 没有类似FavImageContentViewHolder类里的Onclick支持点击,

请问可以提供如何在收藏的列表里打开收藏的文件的demo吗?

最新回复 (2)
  • gaocunbin 2021-5-19
    引用 2
    尝试写了一个例子, 可以打开, 但是如果是收藏的其他人发过来的消息的文件, 需要下载, 不知道如何把下载过程UI进行优化, 请协助确认

    private boolean isDownloading = false;
        @OnClick(R2.id.fileIconImageView)
        void showFavFile() {
    //        String name = favoriteItem.getTitle();
    //        String dir = Config.FILE_SAVE_DIR;
    //        File file = new File(dir, name);
    //        if (file == null) {
    //            return;
    //        }
            Message msg = favoriteItem.toMessage();
            MessageViewModel messageViewModel = ViewModelProviders.of(fragment).get(MessageViewModel.class);
            File file = messageViewModel.mediaMessageContentFile(msg);
            if (file == null) {
                return;
            }

            if (file.exists()) {
                isDownloading = false;
                Intent intent = FileUtils.getViewIntent(fragment.getContext(), file);
                ComponentName cn = intent.resolveActivity(fragment.getContext().getPackageManager());
                if (cn == null) {
                    Toast.makeText(fragment.getContext(), "找不到能打开此文件的应用", Toast.LENGTH_SHORT).show();
                    return;
                }
                fragment.startActivity(intent);
            } else {
                Toast.makeText(fragment.getContext(), "文件正在下载..., 请稍后再次点击尝试打开", Toast.LENGTH_SHORT).show();
                if (isDownloading == false){
                    isDownloading = true;
                    UiMessage uiMsg = new UiMessage(msg);
                    messageViewModel.downloadMedia(uiMsg, file);
                }

            }

        }
  • HeavyRain 2021-5-21
    引用 3
    这个是UI和应用服务的业务,这个你们自己来把握吧
返回