小编Ros*_*nal的帖子

从片段中禁用导航抽屉

我有一个带导航抽屉的应用程序和4个导航项目(碎片).在其中一个片段中,我有一个标签布局设置了一个视图寻呼机(另外3个片段).

从这些内部片段中的一个,我想动态地禁用/启用导航抽屉.基本上,按下按钮,我想限制对导航抽屉的访问(并再次按下它时重新启用).

我该怎么办?

我尝试DrawerLayout从这个内部片段访问父活动.但我没有看到启用/禁用导航抽屉的方法.

我将抽屉添加到主Activity的方式:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
Run Code Online (Sandbox Code Playgroud)

(当然我已经toggle.syncState()onPostCreate方法中添加了.

navigation android android-fragments android-toolbar

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

比较Android中的电话号码

我需要比较两个电话号码,以确定它们是否来自同一个发送者/接收者.用户可以向联系人发送消息,该联系人可以回复.

答复通常以 +[country-code][area-code-if-any][and-then-the-actual-number]格式提供.例如, +94 71 2593276对于斯里兰卡的电话号码.

当用户发送消息时,他通常会以格式输入(对于上面的示例)0712593276(假设他也在斯里兰卡).

所以我需要的是,我需要检查这两个数字是否相同.此应用程序将在国际上使用.所以我不能只用0替换前2位数(那么对于像美国这样的国家来说这将是一个问题).有没有办法在Java或Android专门做到这一点?

谢谢.

java string android phone-number

9
推荐指数
3
解决办法
6805
查看次数

如何在Android中显示"正在加载"状态?

我正在制作一个Android应用程序,它必须通过Internet加载一些数据(只有一些数据 - 不是全部).因此,当加载数据,并且Internet连接速度很慢时,我想向用户显示"正在加载..."图标.

那我该怎么做呢?在后台加载数据时显示"正在加载..."图标,当它完全加载时,隐藏图标?

提前致谢!

java android download

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

在Haskell中生成下一个词典字符串

如果给我一个字符串skhfbvqa,我将如何生成下一个字符串?对于这个例子,它将是skhfbvqb,并且下一个字符串将是skhfbvqc,依此类推.给定的字符串(和答案)总是N个字符长(在这种情况下,N = 8).

我尝试了什么:

我试图生成可能组合的整个(无限)列表,并获得给定字符串的必需(下一个)字符串,但不出所料,它太慢了,我甚至得不到N = 6的答案.

我使用了列表理解:

allStrings = [ c : s | s <- "" : allStrings, c <- ['a'..'z'] ]

main = do
    input <- readFile "k.in"
    putStrLn . head . tail . dropWhile (not . (==) input) . map reverse $ allStrings
Run Code Online (Sandbox Code Playgroud)

(请原谅我非常糟糕的Haskell-ing :)还是一个菜鸟)

所以我的问题是,我该怎么做?如果有多种方法,我们非常感谢它们之间的比较.谢谢!

string algorithm combinations haskell

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

哪些字符不能用于SQLite数据库中的值?

我正在制作Android应用程序而且我使用了SQLite数据库.但我发现如果你输入单引号(')等字符(也用作主键),数据将无法正确保存/检索.

这是我的问题还是真的?如果真的有更多这样的人物?

谢谢.

@bdares和@mu感谢您的提示,但是请您告诉我如何在SQLite中使用占位符和/或预处理语句?

我之前总是使用直接字符串连接,但现在看来这是一个不好的做法,我想使用预处理语句和/或占位符.

sql database sqlite android character

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

网格中旅行商的多项式时间算法

我读到经典的旅行商问题(TSP)是 NP 难问题。并且有一些近似算法以及在 O(N^2 * 2^N) 时间内运行的特定算法。但据我所知,这些是针对一般图表中的 TSP 的。

所以我的问题是,是否有更好的(优选多项式时间)算法来求解 M x N 网格中的 TSP?

例如,假设有一个 3x4 的网格,从一个单元格到 2 个相邻(底部和右侧)单元格中的每一个单元格的移动成本不同。所以我想找到访问所有单元格的最小成本,从单元格 (0, 0) 开始并返回到单元格 (0, 0)。

编辑:为了澄清事情,我很确定这不是欧几里得 TSP。为简单起见,请考虑以下示例。一个矩形被分成M行和N列。推销员位于单元格 0, 0(左上角单元格)。他必须访问所有单元格并仍然返回到起始单元格 (0, 0)。但他只能从一个单元格移动到其 4 个相邻单元格(上、左、下、右)中的每一个。并且从一个小区到其任何一个相邻小区的成本可能并不相同。

谢谢。

algorithm np

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

在C++中获取数字的所有组合

我需要获得给定集合的所有可能组合.例如,给定:[1,4,7],得到的组合应该是:

  • 111,114,117,141,144,147,171,174,177,411,414,417,441,444,447,471,474,477,711,714,717,741,744,747,771, 774,777.

我尝试使用next_permutation方法,但它不是我想要的(这不会返回像111,144,717等的值).

那么我有什么方法可以用C++做到这一点?请注意,我是一个完整的初学者.

提前致谢.

c++ algorithm

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

在Haskell中将函数更改为Maybe函数

是否有可能编写一个函数,它接受一个函数(Something -> Something),并返回它,但是有一个类型(Maybe Something -> Maybe Something)

例如:

f :: Point -> Point
f x = [some code goes here]

makeItMaybe :: (Point -> Point) -> (Maybe Point -> Maybe Point)
makeItMaybe x = ???
Run Code Online (Sandbox Code Playgroud)

我知道它与Monads和Applicatives有关,但无法弄清楚如何.我打了一下周围有<*><$>,但没有取得任何进展.

任何帮助或指示正确的方向将不胜感激.谢谢!

monads haskell function

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

使用 Haskell 运行可执行文件

假设有一个 C++ 代码,我使用以下命令编译成可执行文件:

g++ test.cpp -o testcpp
Run Code Online (Sandbox Code Playgroud)

我可以使用终端运行它(我使用的是 OS X),并提供一个用于在 C++ 程序内部处理的输入文件,例如:

./testcpp < input.txt
Run Code Online (Sandbox Code Playgroud)

我想知道从Haskell内部这样做是否可行。我听说过模块中的readProcess函数System.Process。但这仅允许运行系统 shell 命令。

这样做:

out <- readProcess "testcpp" [] "test.in"
Run Code Online (Sandbox Code Playgroud)

或者:

out <- readProcess "testcpp < test.in" [] ""
Run Code Online (Sandbox Code Playgroud)

或者:

out <- readProcess "./testcpp < test.in" [] ""
Run Code Online (Sandbox Code Playgroud)

抛出此错误(或非常相似的错误,具体取决于我使用的是上述哪一个):

testcpp: readProcess: runInteractiveProcess: exec: does not exist (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,Haskell 是否可以这样做。如果是这样,我应该如何使用以及使用哪些模块/功能?谢谢。

编辑

好的,正如大卫建议的那样,我删除了输入参数并尝试运行它。这样做有效:

out <- readProcess "./testcpp" [] ""
Run Code Online (Sandbox Code Playgroud)

但我仍然坚持提供输入。

shell executable haskell command-line-arguments

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