小编Sco*_*ski的帖子

使用Android Storage Access Framework重命名Google Drive文档会导致权限错误

我正在使用android的存储访问框架(SAF)与文档进行交互。我已经能够找到/读取/写入文档,没有任何麻烦,但是当我尝试对Google Drive文档使用DocumentsContract#renameDocument()重命名时遇到了问题。我发布的代码与内部存储中的文件配合正常。

为了使事情变得容易,我制作了一个示例应用程序并将其推送到github。您可以在以下位置找到该代码:https : //github.com/scottTomaszewski/SafExample,我与文档本身的交互都在此类https://github.com/scottTomaszewski/SafExample/blob/master/app/src/main中/java/com/example/safexample/SafDocument.java

重命名通过Google Drive的SAF界面获取的Uri时出现的错误是这样的(更易于阅读的版本:https : //github.com/scottTomaszewski/SafExample/blob/master/README.md

03-03 14:10:41.529 29069-29069/com.example.safexample W/grok: java.io.FileNotFoundException
        at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:144)
        at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:692)
        at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1103)
        at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:942)
        at android.content.ContentResolver.openInputStream(ContentResolver.java:662)
        at com.example.safexample.SafDocument$2.openStream(SafDocument.java:66)
        at com.google.common.io.ByteSource$AsCharSource.openStream(ByteSource.java:420)
        at com.google.common.io.CharSource.read(CharSource.java:147)
        at com.example.safexample.SafDocument.read(SafDocument.java:73)
        at com.example.safexample.MainActivity.onOptionsItemSelected(MainActivity.java:61)
        at android.app.Activity.onMenuItemSelected(Activity.java:2912)
        at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:404)
        at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:167)
        at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:100)
        at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:100)
        at android.support.v7.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:69)
        at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:169)
        at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:760)
        at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:811)
        at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
        at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:958)
        at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:948)
        at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:618)
        at android.support.v7.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:139)
        at android.view.View.performClick(View.java:5201)
        at android.view.View$PerformClick.run(View.java:21163)
        at android.os.Handler.handleCallback(Handler.java:746)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5443)
        at …
Run Code Online (Sandbox Code Playgroud)

android google-docs storage-access-framework

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

jQuery字符串替换匹配的正则表达式

我试图通过用字符串替换每个单元格中的数据来格式化表的整个列.简单地说,如果我在输入字段中输入"nargles"并单击表格列顶部的格式按钮,则该列中每个单元格中的文本将替换为"nargles".这工作正常.

我的问题涉及用表值替换输入字符串中的"%0","%1","%2"等实例.%0对应于第0列,%1表示第1列,%2表示第2列,等等.此外,它必须获取正在修改的当前行的列值.

为了澄清一个例子,让我们拿表:

1    cat     description
2    dog     description
3    fish    description
Run Code Online (Sandbox Code Playgroud)

如果我为输入输入"Row%0 for%1"并在第3列上执行,结果将是:

1    cat     Row 1 is for cat
2    dog     Row 2 is for dog
3    fish    Row 3 is for fish
Run Code Online (Sandbox Code Playgroud)

希望这是一个充分的解释=)

所以,这是示例表中的示例:

<tr>
    <td></td>
    <td><button class="format" col="1">Format Col</button></td>
    <td><button class="format" col="2" >Format Col</button></td>
</tr>

<tr>
    <td><input type="text" col="0" row="0" value="0" size="1"></td>
    <td><input type="text" col="1" row="0" value="cat" /></td>
    <td><input type="text" col="2" row="0" value="description" /></td>
</tr>

...
Run Code Online (Sandbox Code Playgroud)

这是每列顶部格式按钮的代码

$('td button.format').on('click', function () {

    // get formatter variables …
Run Code Online (Sandbox Code Playgroud)

javascript regex formatting jquery replace

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

Python:识别长度为1与字符串的字符串列表

在我的代码中,我有以下内容:

if all(requiredField in submittedFields for requiredField in requiredFields):
    # all required fields in submittedFields exist
else:
    # error handling
Run Code Online (Sandbox Code Playgroud)

我们的目标是,以检查是否在一个字符串列表requiredFields全部存在于submittedFields

requiredFields长度> 1的字符串列表时,这可以正常工作.但是,当你有类似的东西时

requiredFields = ('single element')
Run Code Online (Sandbox Code Playgroud)

然后for循环迭代每个字符而不是字符串本身.

所以我的问题是,是否有更多的pythonic方法来处理这个问题

try: 
    requiredFields.sort()
    # requiredFields is a list of strings
except AttributeError:
    # requiredFields is a string list whose length == 1
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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