最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 分享功能的實(shí)現(xiàn)代碼

 更新時(shí)間:2017年03月25日 09:13:53   投稿:lqh  
這篇文章主要介紹了Android 分享功能的實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下

Android 分享功能的實(shí)現(xiàn)代碼

一個(gè)Activity中,取出設(shè)備上安裝的所有支持分享動(dòng)作的Activity,在grid中顯示。

實(shí)例代碼:

/**
 * 分享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) {
          //點(diǎn)擊了某個(gè)app的圖標(biāo),用選擇的app分享內(nèi)容
          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圖標(biāo)都放在一個(gè)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) {
        //必須創(chuàng)建新的view holder
        LinearLayout v=new LinearLayout(NShareActivity.this);
        v.setPadding(8,8,8,8);
        Vh vh=new Vh(v);

        //先創(chuàng)建item view:上面一個(gè)圖標(biāo),下面一個(gè)文本
        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) {
        //將視圖與數(shù)據(jù)綁定
        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);
    //分析網(wǎng)站地址的話用這個(gè):
    //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);
      }
    }
  }

}

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

相關(guān)文章

最新評(píng)論

武夷山市| 正宁县| 安仁县| 天门市| 渭南市| 台北县| 扎鲁特旗| 泸西县| 花莲县| 烟台市| 宁城县| 长乐市| 曲阳县| 临邑县| 越西县| 酒泉市| 平塘县| 泸西县| 德惠市| 陆良县| 乳源| 白城市| 轮台县| 高尔夫| 漾濞| 天长市| 历史| 富顺县| 白水县| 北宁市| 曲周县| 东港市| 安岳县| 洪泽县| 谷城县| 海口市| 安化县| 京山县| 元朗区| 贵港市| 横山县|