如何在Android中创建自定义共享对话框

问题描述:

我正在使用从我的应用程序到社交媒体的共享选项。 Android默认共享对话框正常工作。我想自定义对话框,以便我可以像Flipboard android应用程序一样重新排列共享对话框UI。任何人都可以指出如何做到这一点?如何在Android中创建自定义共享对话框

+3

看到下面这个例子可能对你有所帮助http://clickclickclack.wordpress.com/2012/01/03/intercepting-androids -action_send-intents/ –

+0

这是一个很好的例子。我会尝试。 – intrepidkarthi

+0

示例正在工作,但您需要对其进行一些更改 –

我遇到了这个问题。我发现解决这个answer我希望它可以帮助你太..

我下面写这篇文章的代码的情况下,在未来不存在:

您必须使用自定义ListAdapter加入图像。在途中是派生ArrayAdapter(由AlertDialog默认使用)。这里有一个例子:

final Item[] items = { 
    new Item("Email", android.R.drawable.ic_menu_add), 
    new Item("Facebook", android.R.drawable.ic_menu_delete), 
    new Item("...", 0),//no icon for this one 
}; 

ListAdapter adapter = new ArrayAdapter<Item>(
    this, 
    android.R.layout.select_dialog_item, 
    android.R.id.text1, 
    items){ 
     public View getView(int position, View convertView, ViewGroup parent) { 
      //Use super class to create the View 
      View v = super.getView(position, convertView, parent); 
      TextView tv = (TextView)v.findViewById(android.R.id.text1); 

      //Put the image on the TextView 
      tv.setCompoundDrawablesWithIntrinsicBounds(items[position].icon, 0, 0, 0); 

      //Add margin between image and text (support various screen densities) 
      int dp5 = (int) (5 * getResources().getDisplayMetrics().density + 0.5f); 
      tv.setCompoundDrawablePadding(dp5); 

      return v; 
     } 
    }; 


new AlertDialog.Builder(this) 
    .setTitle("Share Appliction") 
    .setAdapter(adapter, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int item) { 
      //... 
     } 
    }).show(); 

这里是项目类

public static class Item{ 
    public final String text; 
    public final int icon; 
    public Item(String text, Integer icon) { 
     this.text = text; 
     this.icon = icon; 
    } 
    @Override 
    public String toString() { 
     return text; 
    } 
}