What is createChooser when I have to use Intents? What I could do with this method?

后端 未结 3 2004
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-02-04 02:05

I have been taking a look over stackoverflow but I did\'t find a definition about what is \"createChooser\" and why I can use and in whick kind of situations is good to use it.<

相关标签:
3条回答
  • 2021-02-04 02:20

    For example: you have a share picture option in your application.

    You define an intent like this:

    Intent picMessageIntent = new Intent(android.content.Intent.ACTION_SEND);
    picMessageIntent.setType("image/jpeg");
    
    File downloadedPic =  new File(
        Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_DOWNLOADS),
        "q.jpeg");
    
    picMessageIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(downloadedPic));
    

    Than when you call:

    startActivity(picMessageIntent);  
    

    all applications on your phone capable of getting this picture will be listed.

    If you want to custimize the title of that list, you can use createChooser like this:

    startActivity(Intent.createChooser(picMessageIntent, "Send your picture using:"));
    

    enter image description here

    0 讨论(0)
  • 2021-02-04 02:25

    This method is used when you want to create a Custom Action using an Intent... Just like what android provides ACTION_VIEW etc... but here when there are multiple choices to perform an an Action this chooser will bring up a dialog which will have all available options and let the user select one... here is an example

    0 讨论(0)
  • 2021-02-04 02:32

    When startActivity(intent) is called for the first time from your app the user sees a list of all apps capable to handle this intent.

    There is also an option to always handle this intent using one of the apps from the list. If this option is used then the list will never be shown again.

    If you use createChooser in your intent then the "always use this app" option is not shown. The user always sees this list.

    0 讨论(0)
提交回复
热议问题