日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android实现分享代码,Android 分享功能的实现代码

發布時間:2025/3/17 Android 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android实现分享代码,Android 分享功能的实现代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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 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()

{

@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 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);

}

}

}

}

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

總結

以上是生活随笔為你收集整理的Android实现分享代码,Android 分享功能的实现代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。