-4

ユーザーがAndroidを使用してファイルをダウンロードするときに、そのファイルを開くためにカスタムアクティビティを起動する必要があります。たとえば、ファイルが起動されると、カスタムアクティビティが[使用中のアクションの完了]アラートボックスに表示されます。

これがどのように行われるかを確認するための例はありますか?

4

1 に答える 1

1

私が正しければ、これはあなたがマニフェストに望むものになります:

<activity
     android:name=".NameOfYourActivity"
     android:label="@string/app_name" >
            <intent-filter>
                  <action android:name="android.intent.action.VIEW" />
                  <category android:name="android.intent.category.DEFAULT" />
                  <data android:mimeType="text/plain" />
            </intent-filter>
</activity>

詳細については、開発者のWebサイトからインテントとインテントフィルターを参照してください。

また、ファイルを表示するために使用できるアクティビティのサンプルを次に示します。

public class MIMEsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    //Get the intent that has the information about the file.
    Intent sender = getIntent();

    //In this example I'm simply displaying the file's contents
    //in a TextView.
    TextView view = (TextView) findViewById(R.id.textview);

    //Check to see if there was an intent sent.
    if(sender != null) {

        //Get the file.
        File file = new File(sender.getData().getPath());

        /*
            DO STUFF HERE WITH THE FILE
            I load the text of the file and send it
            to the TextView.
        */
        StringBuilder text = new StringBuilder();
        try {
            BufferedReader br = new BufferedReader(new FileReader(file));
            String line;

            while ((line = br.readLine()) != null) {
                text.append(line);
                text.append('\n');
            }
        }
        catch (IOException e) {
            //You'll need to add proper error handling here
        }

        view.setText("PATH: " + sender.getData().getPath() + "\n\n" + text);
        //Done doing stuff.
    }
    //If an intent was not sent, do something else.
    else {
        view.setText("You did not get a file!");
    }

}

}

于 2012-06-30T21:47:05.323 に答える