BlackBerry平台文件目录访问

来源:互联网 发布:网络延迟多少正常 编辑:程序博客网 时间:2024/05/20 18:55

在BlackBerry SDK 5.0平台提供两种方式的文件目录访问:

  • FileConnection - J2ME
  • FilePicker - BlackBerry Native

J2ME方式是比较传统方式,本文介绍BlackBerry Native提供的FilePicker方式。FilePicker为文件访问目录提供界面,支持多种文件目录访问选项,比如设置起始文件目录和设置文件过滤等等。

 

范例如下:

 

创建FilePicker并显示文件目录:

 

final FilePicker filePicker = FilePicker.getInstance();
filePicker.show();


访问指定的文件目录:

 

String startPath = "file://store/home/user/documents"
filePicker.setPath(startPath);


设置过滤:        

String filterString = "jpg"
filePicker.setFilter(filterString);

使用FilePicker运行截图如下:

 

 

 

 

文件目录访问源代码如下:

 

package com.rim.samples.device.ui.filepickerdemo;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.picker.*;


/**
 * A sample application to demonstrate the FilePicker class
 */
public class FilePickerDemo extends UiApplication
{
    /**
     * Entry point for application
     * @param args Command line arguments (not used)
     */
    public static void main(String[] args)
    {
        // Create a new instance of the application and make the currently
        // running thread the application's event dispatch thread.
        FilePickerDemo app = new FilePickerDemo();
        app.enterEventDispatcher();       
    }


    /**
     * Creates a new FilePickerDemo object
     */
    public FilePickerDemo()
    {
        pushScreen(new FilePickerDemoScreen());
    }
   

    /**
     * MainScreen class for the FilePickerDemo application
     */
    static class FilePickerDemoScreen extends MainScreen implements FilePicker.Listener,       

    FieldChangeListener
    {
        private LabelField _labelField;
        private FilePicker _filePicker;
        private ButtonField _buttonField;
       
        /**
         * Creates a new FilePickerDemoScreen object
         */
        FilePickerDemoScreen()
        {
            // Initialize screen
            setTitle("File Picker Demo"); 
            _buttonField = new ButtonField("Choose File", ButtonField.CONSUME_CLICK |

            ButtonField.NEVER_DIRTY);           
            _buttonField.setChangeListener(this);
            add(_buttonField);              
            _labelField = new LabelField();
            add(_labelField);
           
            // Get the FilePicker instance
            _filePicker = FilePicker.getInstance();
           
            // Make this class a file picker listener
            _filePicker.setListener(this);
        }
       
         
        /**
         * @see FilePicker.Listener#selectionDone(String)
         */
        public void selectionDone(String selection)
        {
            if(selection != null && selection.length() > 0)
            {
                // Display the chosen file on the screen
                _labelField.setText("File selected: " + selection);
            }
        }
       
       
        /**
         * @see FieldChangeListener#fieldChanged(Field, int)
         */
        public void fieldChanged(Field field, int context)
        {
            if(field == _buttonField)
            {
                _filePicker.show();                    
            }
        }           
    } 
}