pythonsl4中的文件对话框

2024-09-29 17:16:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我在sl4a中寻找一个简单的文件选择器对话框。我找到了一些本机对话框here,但没有找到我要找的那个。在

我希望我能找到一些现成的东西来节省时间。像filename = fileopendialog()这样的最小代码将是一个额外的奖励。在

有什么想法吗?在


Tags: 文件代码here选择器filename对话框节省时间sl4a
1条回答
网友
1楼 · 发布于 2024-09-29 17:16:45

我决定写我自己的(见下文参考)。这也许可以做得更好,任何建议都欢迎。在

import android, os, time

droid = android.Android()
# Specify root directory and make sure it exists.
base_dir = '/sdcard/sl4a/scripts/'
if not os.path.exists(base_dir): os.makedirs(base_dir)

def show_dir(path=base_dir):
    """Shows the contents of a directory in a list view."""
    #The files and directories under "path"
    nodes = os.listdir(path)
    #Make a way to go up a level.
    if path != base_dir: 
        nodes.insert(0, '..')
    droid.dialogCreateAlert(os.path.basename(path).title())
    droid.dialogSetItems(nodes)
    droid.dialogShow()
    #Get the selected file or directory .
    result = droid.dialogGetResponse().result
    droid.dialogDismiss()
    if 'item' not in result:
       return
    target = nodes[result['item']]
    target_path = os.path.join(path, target)
    if target == '..': target_path = os.path.dirname(path)
    #If a directory, show its contents .
    if os.path.isdir(target_path): 
        show_dir(target_path)
    #If an file display it.
    else:
        droid.dialogCreateAlert('Selected File','{}'.format(target_path))
        droid.dialogSetPositiveButtonText('Ok')
        droid.dialogShow()
        droid.dialogGetResponse()

if __name__ == '__main__':
    show_dir()

相关问题 更多 >

    热门问题