2012-06-21 46 views
0

我有一個打開txt文件的活動。每當用戶想要打開一個txt文件,我的應用程序就可以打開它。我的問題是,我如何通過文件的路徑打開我的活動?而且,如何以編程方式接收路徑?總之,除了在清單文件中設置意圖過濾器以允許我的應用程序在單擊該文件後打開一個txt文件時,我還需要做些什麼?接收意向

+0

你的問題的答案取決於你的意思是「點擊一個txt文件」。你用什麼界面來顯示文件?你如何確定哪個文件被點擊? – matt5784

+0

我將在滾動視圖中顯示包含文本視圖的文件,我將通過文件管理器單擊該文件。 –

回答

0

您將需要使用廣播接收器,但不知道您必須使用什麼意圖過濾器。

也許一些嘗試是加入這樣的事情您的清單:

<receiver android:name="MyBroadcastReceiver"> 
    <intent-filter> 
    <action android:name="android.intent.action.ACTION_VIEW" /> 
    <action android:name="android.intent.action.ACTION_EDIT" /> 
    <action android:name="android.intent.action.ACTION_PICK" /> 
    </intent-filter> 
</receiver> 

然後你需要創建MyBroadcastReceiver類是這樣的:

public final class MyBroadcastReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
    // Your receiver code here... 
    } 
} 

再檢查到的onReceive方法當您嘗試打開文件時收到的意向數據。這樣你就可以知道哪些數據會進入意圖。

希望它有幫助。

+0

謝謝!我認爲會的。 –

+0

我有一個關於註冊這個MyBroadcastReceiver的問題。我是否實例化一個新的IntentFilter以放入registerReceiver()方法?或者有沒有從Manifest文件獲取Intent Filter的方法? –

+0

您可以直接在清單文件中配置意圖過濾器,如上所述。 – Ernesto

0

您可以使用文件(http://developer.android.com/reference/java/io/File.html)或FileInputStream(http://developer.android.com/reference/java/io/FileInputStream.html)類來保存文件路徑並處理輸入。如果你正在傳遞意圖,你可能會想使用putExtra()方法將一個包含文件名的字符串添加到意圖中,並在另一側檢索它。

+0

我沒有通過一個意圖。我指的是Android系統本身在您點擊要打開的文件時通過的intenet。我必須使用廣播接收器嗎? –