国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 分享功能的實現代碼

2019-12-12 03:17:16
字體:
來源:轉載
供稿:網友

Android 分享功能的實現代碼

一個Activity中,取出設備上安裝的所有支持分享動作的Activity,在grid中顯示。

實例代碼:

/** * 分享activity */public class NShareActivity extends AppCompatActivity {  public final static String EXTRA_STR_TO_SHARE="str_to_share1";  private class SharedPkgInfo{    String pkgName;    Drawable icon;    String appName;    String activityClassName;  }  class Vh extends RecyclerView.ViewHolder {    TextView tv;    ImageView iv;    public Vh(View itemView) {      super(itemView);      itemView.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {          //點擊了某個app的圖標,用選擇的app分享內容          Intent share = new Intent(android.content.Intent.ACTION_SEND);          share.setType("text/*");          share.putExtra(Intent.EXTRA_SUBJECT, "分享");          share.putExtra(Intent.EXTRA_TEXT,NShareActivity.this.strToShare);          //share.putExtra(Intent.EXTRA_STREAM, uri); // Optional, just if you wanna share an image.          SharedPkgInfo pi = sharePkgInfo.get(getAdapterPosition());          share.setClassName(pi.pkgName,pi.activityClassName);          //share.setPackage();          startActivity(share);        }      });    }  }  //獲取支持供享的包的信息  List<SharedPkgInfo> sharePkgInfo=new ArrayList<>();  //要分享出去的文本放在這里  private String strToShare=null;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    Intent intent= this.getIntent();    strToShare = intent.getStringExtra(EXTRA_STR_TO_SHARE);    getAllSharePackages();    //將可共享的app圖標都放在一個gridview中    RecyclerView v=new RecyclerView(this);    v.setPadding(16,16,16,16);    GridLayoutManager lm=new GridLayoutManager(this,4);    v.setLayoutManager(lm);    v.setAdapter(new RecyclerView.Adapter<Vh>()    {      @Override      public Vh onCreateViewHolder(ViewGroup parent, int viewType) {        //必須創建新的view holder        LinearLayout v=new LinearLayout(NShareActivity.this);        v.setPadding(8,8,8,8);        Vh vh=new Vh(v);        //先創建item view:上面一個圖標,下面一個文本        LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(            LinearLayout.LayoutParams.MATCH_PARENT,            LinearLayout.LayoutParams.WRAP_CONTENT);        v.setOrientation(LinearLayout.VERTICAL);        v.setLayoutParams(lp);        ImageView imgv=new ImageView(NShareActivity.this);        imgv.setLayoutParams(new LinearLayout.LayoutParams(            LinearLayout.LayoutParams.MATCH_PARENT,            120));        TextView tv=new TextView(NShareActivity.this);        tv.setGravity(Gravity.CENTER);        v.addView(imgv);        v.addView(tv);        vh.tv=tv;        vh.iv=imgv;        return vh;      }      @Override      public void onBindViewHolder(Vh holder, int position) {        //將視圖與數據綁定        SharedPkgInfo spi=sharePkgInfo.get(position);        holder.tv.setText(spi.appName);        holder.iv.setImageDrawable(spi.icon);      }      @Override      public int getItemCount() {        return sharePkgInfo.size();      }    });    v.setBackgroundColor(Color.WHITE);    this.setContentView(v);  }  //獲取所有支持send Action的包名和圖片  void getAllSharePackages()  {    Intent share = new Intent(android.content.Intent.ACTION_SEND);    //分析網站地址的話用這個:    //intent.setType("text/plain"); //純文本    share.setType("text/*");    // gets the list of intents that can be loaded.    List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(share, 0);    if (!resInfo.isEmpty()) {      for (ResolveInfo info : resInfo) {        SharedPkgInfo spi = new SharedPkgInfo();        spi.pkgName = info.activityInfo.packageName;        spi.icon = info.loadIcon(getPackageManager());        spi.appName = info.loadLabel(getPackageManager()).toString();        spi.activityClassName=info.activityInfo.name;        sharePkgInfo.add(spi);        //Log.w("shared",spi.pkgName+" , "+spi.appName+","+info.activityInfo.name);      }    }  }}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淄博市| 武宁县| 五指山市| 禄丰县| 三原县| 云南省| 宿州市| 香河县| 龙游县| 进贤县| 龙川县| 红安县| 海林市| 涞水县| 佛冈县| 牟定县| 昌吉市| 宿松县| 东源县| 蓝山县| 蒲江县| 建湖县| 正阳县| 南投县| 竹溪县| 林西县| 安图县| 邹平县| 虎林市| 格尔木市| 温宿县| 台东市| 九寨沟县| 德庆县| 永泰县| 什邡市| 西昌市| 米泉市| 新和县| 安平县| 繁昌县|