微信微博分享功能
2013-08-23 16:27
405 查看
默认分享(微信、新浪微博、腾讯微博、网易微博、人人网)
import java.util.ArrayList; import java.util.List; import android.R; import android.app.Activity; import android.app.Dialog; import android.content.ComponentName; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.Html; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class ShareActivity extends Activity { private Dialog mDialog; private ListView mList; private ShareAdapter mAdapter = new ShareAdapter(); private String[] packages = { "com.tencent.mm", "com.sina.weibo", "com.tencent.WBlog", "com.netease.wb", "com.renren.mobile.android" }; private String[] actions = { "com.tencent.mm.ui.tools.ShareImgUI", "com.sina.weibo.EditActivity", "com.tencent.WBlog.intentproxy.TencentWeiboIntent", "com.netease.wb.activity.SendBlogActivity", "com.renren.mobile.android.publisher.InputPublisherActivity" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getShareApp(); } public void onRightFunO(View view) { if (mAdapter.getCount() > 1) { showDialog(); } else { share(null); } } private void share(AppInfo app) { try { Intent intent = new Intent(); if (app != null && app.pkg != null) { ComponentName comp = new ComponentName(app.pkg, app.action); intent.setComponent(comp); } intent.setAction(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, "分享"); intent.putExtra(Intent.EXTRA_TEXT, "快讯详情"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } catch (Exception e) { Toast.makeText(this, "没有可执行的应用", Toast.LENGTH_LONG).show(); } } private void getShareApp() { Intent intent = new Intent(Intent.ACTION_SEND, null); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.setType("text/plain"); PackageManager packageManager = this.getPackageManager(); List<ResolveInfo> mApps = packageManager.queryIntentActivities(intent, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT); int count = packages.length; List<AppInfo> data = new ArrayList<ShareActivity.AppInfo>(); for (ResolveInfo resolveInfo : mApps) { for (int i = 0; i < count; i++) { if (resolveInfo.activityInfo.packageName .equalsIgnoreCase(packages[i])) { AppInfo app = new AppInfo(); app.label = resolveInfo.loadLabel(packageManager) .toString(); app.pkg = packages[i]; app.action = actions[i]; app.icon = resolveInfo.loadIcon(packageManager); data.add(app); } } } AppInfo app = new AppInfo(); app.label = "更多"; app.icon = getResources().getDrawable(R.drawable.ic_more); data.add(app); mAdapter.setData(data); } private void showDialog() { if (mDialog == null) { mDialog = new Dialog(this, R.style.dialog); View contentView = inflater.inflate(R.layout.filter_dropdown, null); mList = (ListView) contentView.findViewById(R.id.filter_list); mList.setItemsCanFocus(false); mList.setChoiceMode(ListView.CHOICE_MODE_SINGLE); TextView mTitleBarLabel = (TextView) contentView .findViewById(R.id.title_bar_label); mTitleBarLabel.setText("分享"); mDialog.setContentView(contentView); mList.setAdapter(mAdapter); } mList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mDialog.dismiss(); share((AppInfo) parent.getAdapter().getItem(position)); } }); mDialog.show(); } private class AppInfo { public String label; private String pkg; public String action; public Drawable icon; } private class ShareAdapter extends BaseAdapter { private List<AppInfo> apps = new ArrayList<ShareActivity.AppInfo>(); public void setData(final List<ShareActivity.AppInfo> app) { this.apps = app; notifyDataSetChanged(); } @Override public int getCount() { return apps.size(); } @Override public Object getItem(int position) { return apps.get(position); } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = inflater.inflate(R.layout.menu_item, null); } AppInfo app = apps.get(position); ImageView img = (ImageView) convertView.findViewById(R.id.image1); img.setImageDrawable(app.icon); TextView text1 = (TextView) convertView.findViewById(R.id.text1); text1.setText(app.label); return convertView; } } }
相关文章推荐
- Android实现短信、微信、微博分享功能
- 微信JS-SDK实现自定义分享功能,分享给朋友,分享到QQ,分享到微博
- [置顶] 安卓调用系统自带分享功能分享文字,分享大图片,仿好奇心日报分享长图片(不用申请微信微博官方sdk就能直接分享)
- HTML5 实现分享功能(QQ 微信 微博)
- Android微博,微信,QQ分享功能的实现
- ionic第三方QQ,微博,微信的登录,分享功能的实现和注意事项
- 安卓动态壁纸源码--可直接进入壁纸设置界面+玫瑰花瓣飘落效果+可分享到微博、微信功能--无任何删减2
- Android 实现微信,微博,微信朋友圈,QQ分享的功能
- 微信 qq微博分享功能
- js-分享功能(qq,微信,微博)
- Ionic 分享功能(微博 微信 QQ)
- iOS UIActivityViewController 实现微信微博等等的分享功能
- js分享插件功能文档说明(微信、微博、qq空间分享)
- ios 微信分享,QQ分享,微博分享集成
- Android 使用shareSDK分享(快捷分享和分享到指定平台)(微信,qq,微博)
- 实现分享到微信,微博,朋友圈
- 网页分享到微信、微博、QQ等
- 微信jssdk分享功能分享内容自定义失败原因
- 微信JSSDK分享功能详解
- 分享到微信,qq空间,微博