小编Tim*_*j93的帖子

如何从另一个ViewHolder中获取对ViewHolder的引用?(RecyclerView)

我有RecyclerView一些view's/card(我现在称它为视图),它们都包含相同的东西,包括View我用作分隔条的东西.

我希望能够view在当前的上面更改此分隔栏的属性.所以说我点击说明的卡片test3,我希望能够设置分隔栏的属性test2 view.

澄清:

我只需要参考上面ViewHolder的视图(或任何其他的)我点击的那个,就是全部.我该怎么做?

在此输入图像描述

public class StuffManagerAdapter extends RecyclerView.Adapter<StuffManagerAdapter.MyViewHolder> {

    private List<StuffManagerClass> stuffList;
    private Context context;
    private String TAG = "CStA";
    DBHandler dbHandler;
    ArrayList<String> tagArray = new ArrayList<>();
    RecyclerView mRecyclerView;

    public StuffManagerAdapter(List<StuffManagerClass> stuffList, Context context) {
        this.stuffList = stuffList;
        this.context = context;
        dbHandler = DBHandler.getInstance(context);
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {
        public TextView DeviceTV, NameTV, TagTV;
        private ImageButton editButton, deleteButton;
        public …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

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

为什么 onCreateOptionsMenu 运行多次?

出于某种原因, myonCreateOptionsMenuonPrepareOptionsMenu运行两次(在两种方法开始时使用日志输入进行检查)。这发生在我拥有的多个片段中,包括一些非常基本的片段(只是膨胀菜单,没有别的)。

这是onCreateOptionsMenu有此问题的s之一:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.actionbuttons_add_removeall, menu);
    optionsMenu = menu;
}
Run Code Online (Sandbox Code Playgroud)

什么会导致这些方法被多次调用(主要是两次)?


更新

我发现这是由RecyclerView我正在使用的(以某种方式)引起的。有这个问题的所有视图都使用 RV,我之前提到的视图没有这个问题,确实没有。有了这些新信息,RV 的哪一部分可能会引起这个问题?

更新2

我发现我打电话.invalidateOptionsMenu()getItemCount()的方法Adapter。我认为这会调用onPrepareOptionsMenu(),但阅读文档,它似乎调用onCreateOptionsMenu(). 我可能得到onCreate..()onPrepare..()逆转这里,要去检查出来了。

更新3

我刚刚意识到我的RecyclerViewAdapter,getItemCount()方法中的选项菜单无效,该方法显然在首次创建片段时运行。

@Override
public int getItemCount() {
    int tableSize = getTableSizeMethod();

    if (tableSize < 1) {
        if (!AppManagerFragment.hideDeleteAllButton) {
            AppManagerFragment.hideDeleteAllButton = true;
            ((Activity) context).invalidateOptionsMenu();
            return 0;
        } …
Run Code Online (Sandbox Code Playgroud)

java android android-optionsmenu oncreateoptionsmenu

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

我无法在导航抽屉活动中删除默认的粉红色FloatingActionButton

所以,我不能为我的生活弄清楚为什么我无法删除导航抽屉活动附带的默认FAB.我做这个,我试着点击都为设计视图按钮activity_main.xmlcontent_main.xml,但我无法选择,所以我也不能删除.
有没有人知道这个按钮是否以某种方式在NavDrawer活动中被烘焙,或者是否只有我在这里缺少的东西?

我正在使用AS 1.5.1.

android floating-action-button

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

将“type: module”添加到 package.json 后出现未知的文件扩展名错误

我正在使用 TypeScript,使用现代导入语句。运行nodemon(然后使用ts-node)这显然会导致SyntaxError: Cannot use import statement outside a module. 很公平,所以我添加"type": "module"到我的package.json文件中。在不更改任何其他内容的情况下,新错误现在显示为:TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for .../file.ts。请记住,在添加之前完全相同的配置可以很好地"type":"module"运行文件。.tsNodemon 仍然正确使用 ts-node,如错误上方的行所示:[nodemon] starting ts-node src/file.ts

所以我很困惑:如果不使用"type":"module"现代进口,一切都会正常工作。添加现代进口会增加一个合理的错误。但试图解决这个问题"type":"module"会产生奇怪的行为。

我还尝试从主 .ts 文件中删除所有内容,仅添加 console.log 语句。如果没有"type":"module"在我的 package.json 文件中,这会很好地打印到日志中。立即添加"type":"module"回来会再次导致未知文件扩展名错误。

简单的说:

这工作正常:

// File.ts
console.log("test")

// package.json
{
    ...
}

// Output
test
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

// File.ts
console.log("test")

// package.json
{
    "type": "module",
    ...
} …
Run Code Online (Sandbox Code Playgroud)

typescript nodemon package.json ts-node

6
推荐指数
0
解决办法
1199
查看次数

是否有适用于Android移动设备的默认DotsPageIndicator(不易磨损)?

我想将ViewPageIndicator用作我的ViewPager。我找到了这个 DotsPageIndicator,但似乎只用于AndroidWear。有趣的是,每个Android 6设备的首页上都有几乎完全相同的东西,如下图所示(单击以查看大图)。

那么,有什么我只是简单地缺少的东西,它可以像所有默认Android东西一样容易实现吗?还是我仍然必须使用外部库?如果后者是真的,我该怎么办?

android android-viewpager viewpagerindicator

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

我可以在鼠标悬停时弹出窗口以获取 Sublime Text 中的内联文档吗?

我习惯了 Android Studio,当您将光标悬停在函数(或其他任何内容)上时,它会显示这些很棒的弹出窗口,其中会显示描述、参数等。现在我使用 Sublime Text 3 进行 Lua 编程,我想要一个类似的东西。我更喜欢允许内联文档的东西。

我找到了一个叫做ToolTip-Helper 的东西并尝试了它,但不幸的是我无法让它工作。我按照他们的描述创建了内联文档,并将鼠标放在更下方的函数调用上,但不幸的是没有显示弹出窗口。然而,它确实与我正在寻找的完全相似。内联文档和鼠标悬停在公式上时的简单弹出窗口。

有谁知道可以执行这些操作的工具,或者知道如何让 ToolTip-Helper 工作?

lua sublimetext3 sublime-text-plugin

5
推荐指数
0
解决办法
893
查看次数

如何在 awk 中匹配连字符 (-) 和哈希 (#) 符号?

我想匹配hyphenhash sign在while循环awk。我目前的设置是:

awk 'BEGIN { while ($1==# && $2==-) { #do stuff} }'
Run Code Online (Sandbox Code Playgroud)

这显然会导致哈希符号出现语法错误。我尝试过以各种方式转义它,但这要么导致语法错误,要么导致“反斜杠不是最后一个字符”错误。

所以:我怎样才能匹配hash sign,并hyphenawk表达?

bash awk hyphen

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

什么是一次性算法,我的算法是什么?

对于我正在上课的课程,最好使用 aone-pass algorithm来解决某个任务。由于这门课不在我的专业范围内(我是建筑环境,这门课是计算机科学),并且没有在课堂上讨论,我不知道什么是一次性算法。谷歌搜索它给了我这样的想法:

每个输入只能访问一次,并且所有内容都应按顺序处理。

对于我下面的代码,这向我表明for loop将适合 a one-pass algorithm,但我不确定while loop.

你能告诉我,最好用外行的话,one-pass algorithm意味着什么/需要什么,我下面的代码是否符合这个描述?

public int[] computeDepth(int tree[]) {
    int[] depth = new int[tree.length];

    depth[0] = 0;
    for (int index=1; index < tree.length; index++) {

        depth[index] = 1;

        int parentIndex = tree[index];
        while (parentIndex != 0) {

            parentIndex = tree[parentIndex];
            depth[index]++;
        }
    }

    return depth;
}
Run Code Online (Sandbox Code Playgroud)

java algorithm

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

在shell/bash脚本中使用文件之间的变量

这个问题已在这里多次发布,但它似乎永远不会回答我的问题.

我有两个脚本.第一个包含一个或多个变量,第二个脚本需要这些变量.第二个脚本还需要能够更改第一个脚本中的变量.

我对源(包含变量的第一个脚本运行第二个脚本)或导出(使用环境变量)不感兴趣.我只是想确保第二个脚本可以读取和更改(获取和设置)第一个脚本中可用的变量.

(PS.如果我误解了采购或出口是如何运作的,并且它适用于我的情况,请告诉我.我不会完全接受这些方法,在我读完之后,我只是不认为那些事情会做我想要的)

bash shell

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

是否有替代接口中的重载方法?

我正在使用Interface一个CallBack(两者都是我很新的).到目前为止,我所有的都是CallBacks相同的元素类型,但现在我想返回一个不同的元素类型.

现在的情况:

public interface CallBack {
    void CallBack(String s)
}
Run Code Online (Sandbox Code Playgroud)

我认为会起作用:

public interface CallBack {
    void CallBack(String s)
    void CallBack(Integer i)
}
Run Code Online (Sandbox Code Playgroud)

这(显然对于大多数人来说)告诉我在使用时必须实现这两种方法CallBack,这不是我的预期用途.
我知道我现在可以通过改变它来'修复'这个void CallBack(Object o),但我不喜欢模糊的类型,并希望使它更加坚固.

我有什么方法可以做到这一点,所以我CallBack Override看起来像这样:

...new CallBack() {
    @Override
    public void CallBack(String s) {
        ...
Run Code Online (Sandbox Code Playgroud)

... 要么 ...

...new CallBack() {
    @Override
    public void CallBack(Integer i) {
        ...
Run Code Online (Sandbox Code Playgroud)

...而不是必须实现两者,或使用Object变体?

java android overriding interface callback

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

为什么我不断收到“找不到模块‘socket.io’”?

我一直在尝试在我的 NodeJS 脚本中使用 socket.io,但我不断收到错误“找不到模块‘socket.io’”。

完整错误:

$ sudo node /var/www/apache/server/serverScript.js
module.js:549
    throw err;
    ^

Error: Cannot find module 'socket.io'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/var/www/apache/server/serverScript.js:59:12)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
Run Code Online (Sandbox Code Playgroud)

我已经尝试在全球安装 socket.io,我已经更新了所有与 npm 相关的内容,并尝试了我在网上找到的所有其他常见建议,但错误没有改变。

如果我不得不猜测,我认为它与 package.json 文件有关。我最近才开始使用 NodeJS,从未使用过 package.json 文件。我看到有人提到它作为修复,所以我通过npm init. 这将它放在/home/pi. 由于这没有帮助,我将文件移动到 js 文件位置:/var/www/apache/server. 不幸的是,没有运气。

谁能告诉我是什么导致了这个问题?

javascript node.js socket.io

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