小编ako*_*out的帖子

使用ItemTouchHelper进行滑动以解除与刷出后面显示的另一个视图

我有一个RecyclerView,并希望允许我的用户使用滑动手势从列表中删除项目.但正如其他应用程序(例如Gmail)所知,我想在其后面显示一个删除图标,以便我的用户知道刷卡会导致删除.但是,我找不到一个明显的方法来做到这一点.ItemTouchHelper使用viewHolder.itemView,因此需要整行.

我的代码:

    ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new
            ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT) {
                @Override
                public boolean onMove(
                        final RecyclerView recyclerView,
                        final RecyclerView.ViewHolder viewHolder,
                        final RecyclerView.ViewHolder target) {
                    return false;
                }

                @Override
                public void onSwiped(
                        final RecyclerView.ViewHolder viewHolder,
                        final int swipeDir) {
                    adapter.remove(viewHolder.getAdapterPosition());
                }
            };

    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(
            simpleItemTouchCallback
    );
    itemTouchHelper.attachToRecyclerView(itemsRecyclerView);

    itemsRecyclerView.setLayoutManager(
            new LinearLayoutManager(getContext())
    );
    itemsRecyclerView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

如果可能的话,有没有胶水?我现在唯一可以想象的是扩展ItemTouchHelper /复制代码,而不是使用viewHolder.itemView我采用ID标识的视图.

android android-recyclerview

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

什么是ngram计数以及如何使用nltk实现?

我读过一篇论文,它使用ngram计数作为分类器的特征,我想知道这究竟意味着什么.

示例文本:"Lorem ipsum dolor sit amet,consetetur sadipscing elitr,sed diam"

我可以在本文中创建unigrams,bigrams,trigrams等,在这里我必须定义创建这些unigrams的"级别"."级别"可以是字符,音节,单词,......

因此,从上面的句子中创建unigrams只会创建所有单词的列表?

创建双字母组合会导致单词对将相互跟随的单词组合在一起吗?

因此,如果论文讨论ngram计数,它只会在文本中创建unigrams,bigrams,trigrams等,并计算ngram发生的频率?

python的nltk包中是否存在现有方法?或者我必须实现自己的版本?

python nlp nltk

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

在"底部"的CakePHP布局中加载Javascript文件

目前,我有一个很大的CakePHP应用程序,它有一个布局和很多视图.在布局中,我在头部加载大多数视图所需的Javascript文件.在视图中,我要么加载额外的Javascript文件(例如,加载仅在那里需要的库文件),要么在脚本标记中添加一些仅与此视图相关的Javascript代码,例如,如果我需要单击处理程序.

由于已知的事实是在加载页面的HTML头块中加载Javascript文件,我想在关闭正文标记之前将它们放在底部.但是,如果我这样做,我的视图中加载内容的Javascript会中断,因为它不知道我加载的Javascript文件.我知道加载视图中的Javascript代码是在加载文件之前执行的.但是我怎么能防止这种情况呢?

我目前正在使用布局中的HTML帮助程序(以及其他任何地方)来加载我的JS文件,如下所示:

<?php echo $this->Html->script('//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'); ?>
Run Code Online (Sandbox Code Playgroud)

我使用JS Helper在页面末尾"输出"JS

<?php echo $this->Js->writeBuffer(); ?>
Run Code Online (Sandbox Code Playgroud)

有没有办法可以在视图中附加我的JS代码,以便在调用writeBuffer时执行它?这可以帮助我吗?

php cakephp cakephp-2.2

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

"太多属性引用"警告

我有一个应用程序,其中一些片段只包含ListViews.我的一些低端设备用户会遇到一种现象,即片段根本无法显示数据.当他们进入片段时,我会显示一个ProgressBar,而这个ProgressBar似乎永远旋转.

所以我买了一台低端设备,面临同样的问题.我通过网络请求获取ListView的数据到我的后端API,但答案永远不会返回.我到目前为止唯一的警告是

W/ResourceType? Too many attribute references, stopped at: 0x01010034
Run Code Online (Sandbox Code Playgroud)

我在网上找不到这个错误,但似乎这个警告记录在这里https://github.com/SciAps/android-frameworks-base/blob/c693209edc3696884c1fcd59790dda0b9811d017/libs/utils/ResourceTypes.cpp#L1573 ,但我不明白Android代码在那里做什么.

任何人都知道这里发生了什么,问题是什么以及我如何解决这个问题?

顺便说一句,我使用RoboSpice和Retrofit来做网络请求.在此警告之后停止负责获取数据的后台服务,这就是我永远不会收回数据的原因.

编辑据我所知,没有看到数据与警告无关.无论如何,这个警告意味着什么,我该如何预防呢?

android android-layout android-framework

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

在WP7中存储LiveConnectSession

我想在我的Windows Phone 7应用程序上使用Hotmail API.因此,我必须授予访问我的移动应用程序的权限.我这样做是使用Microsoft Live Connect API,它真的很适合一开始.我使用以下代码进行身份验证:

string[] requiredScope = { "wl.signin", "wl.calendars_update", "wl.offline_access" };
LiveAuthClient auth = new LiveAuthClient(Configuration.ClientID);
auth.LoginCompleted += new EventHandler<LoginCompletedEventArgs>(authInitializeCompletedHandler);
auth.LoginAsync(requiredScope);
Run Code Online (Sandbox Code Playgroud)

ClientID是我从MS获得的用于注册我的应用程序的ID.我的回调看起来(简单)像这样:

private void authInitializeCompletedHandler(object sender, LoginCompletedEventArgs e)
{
    if (e.Status == LiveConnectSessionStatus.Connected)
    {
        this._session = e.Session; // Session hat AccessToken und RefreshToken
        this._isAuthorized = true;
        callDelegates();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果该调用成功(并且它当前有效,那么它可以工作),我存储检索到的Session.此会话可以在LiveConnectClient构造函数中使用,以在我的应用程序中启用与MS API的通信Hotmail API.

LiveConnectClient client = new LiveConnectClient(_session);
Run Code Online (Sandbox Code Playgroud)

我的问题是我想以某种方式保存该会话,以便当应用程序被逻辑删除并重新获得焦点时,我不希望用户再次请求许可 - 他已经给了我这个.我自己想通了返回的会话包含一个AccessToken,RefreshToken和Expires属性(我知道那是什么,这不是问题).如何在以后的通话中使用该信息?Microsoft的文档在此结束,我找不到任何有用的信息.

我找到了2个解决方法:

  • 实时连接按钮:不应该是要走的路,因为我不想显示实时按钮,只是我得到了我的会话变量.
  • RESTful API:这需要我完全重写我到目前为止所做的事情,因为一切都依赖于LiveConnectClient(这使得通信非常简单).

但我真的不想使用那些解决方法.我相信/希望有更好的解决方案.

c# windows-phone-7

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

带有时间戳的Gradle distZip存档

我使用distZip任务来创建我的发行版.分发名称是'baseName' - 'version'.zip.我想用作当前时间戳的分类器,即构建的时间.

我试过用

distZip {
    classifier new Date().getTime()
}
Run Code Online (Sandbox Code Playgroud)

但后来我收到以下错误:

Could not find method classifier() for arguments [1421317243316] on root project
Run Code Online (Sandbox Code Playgroud)

用Java做伎俩

new Date().getTime() + ''
Run Code Online (Sandbox Code Playgroud)

没有帮助.有人有想法吗?

如果我可以从对象中提取年,月和日,也会很高兴.

gradle build.gradle

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