2012-12-10 91 views
3

我正在使用從我的應用程序到社交媒體的共享選項。 Android默認共享對話框正常工作。我想自定義對話框,以便我可以像Flipboard android應用程序一樣重新排列共享對話框UI。任何人都可以指出如何做到這一點?如何在Android中創建自定義共享對話框

+3

看到下面這個例子可能對你有所幫助http://clickclickclack.wordpress.com/2012/01/03/intercepting-androids -action_send-intents/ –

+0

這是一個很好的例子。我會嘗試。 – intrepidkarthi

+0

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

回答

2

我遇到了這個問題。我發現解決這個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; 
    } 
} 
相關問題