編輯:Android開發實例
1,自己封裝的一個簡單的Class:
- public class ShareSample {
- /**
- * 獲得分享列表(簡單實現,只是把核心的東西寫了寫。不是太實用)
- * **/
- public void getShareList(final String title,final String content,final Activity mActivity)
- {
- final Map<String,ResolveInfo> appInfo =new HashMap<String, ResolveInfo>();
- List<ResolveInfo> appList=getShareTargets(mActivity);
- final String[] items;
- if(appList.size()>0){
- for (int i = 0; i < appList.size(); i++) {
- ResolveInfo tmp_ri=(ResolveInfo)appList.get(i);
- //ActivityInfo tmp_ai=tmp_ri.activityInfo;
- ApplicationInfo apinfo=tmp_ri.activityInfo.applicationInfo;
- String tmp_appName = apinfo.loadLabel(mActivity.getPackageManager()).toString();
- //這裡就做了一個簡單的得到應用名稱判斷, 實際情況根據 ResolveInfo 這東東 可以得到很多很多有用的東東哦。
- if(!tmp_appName.equals("微博"))
- {
- continue;
- }
- appInfo.put(tmp_appName,tmp_ri);
- }
- items=new String[appInfo.size()];
- int j=0;
- for (Map.Entry<String,ResolveInfo> myEntry : appInfo.entrySet()) {
- items[j]=myEntry.getKey();
- j++;
- }
- }
- else{
- Toast.makeText(mActivity.getApplicationContext(),"暫無分享應用", Toast.LENGTH_SHORT).show();
- return;
- }
- if(appInfo.size()<1)
- {
- Toast.makeText(mActivity.getApplicationContext(),"暫無分享應用", Toast.LENGTH_SHORT).show();
- return;
- }
- /**
- * 這裡用對話框簡單的一個實現,實際開發中應該要單獨抽取出來封裝成一個自定義的列表。
- *
- * **/
- new AlertDialog.Builder(mActivity).setTitle("選擇分享")
- .setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int item) {
- CreateShare(title,content,mActivity,appInfo.get(items[item]));
- //CreateShare(title,content,mActivity);
- dialog.cancel();
- }
- }).show();//顯示對話框
- }
- /**
- * 實現自定義分享功能(主要就是啟動對應的App)
- * **/
- private void CreateShare(String title,String content ,Activity activity,ResolveInfo appInfo) {
- try
- {
- Intent shareIntent=new Intent(Intent.ACTION_SEND);
- shareIntent.setComponent(new ComponentName(appInfo.activityInfo.packageName, appInfo.activityInfo.name));
- //這裡就是組織內容了,
- // shareIntent.setType("text/plain");
- shareIntent.setType("image/*");
- shareIntent.putExtra(Intent.EXTRA_TEXT, content);
- shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- activity.startActivity(shareIntent);
- }catch (Exception e) {
- e.printStackTrace();
- // TODO: handle exception
- }
- }
- /**
- * 默認分享列表(網上一大堆)
- * **/
- private void CreateShare(String title,String content ,Activity activity) {
- Intent intent=new Intent(Intent.ACTION_SEND);
- intent.setType("image/*");
- intent.putExtra(Intent.EXTRA_SUBJECT, title);
- intent.putExtra(Intent.EXTRA_TEXT, content);
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- activity.startActivity(Intent.createChooser(intent, title));
- }
- /**
- * 獲得所有帶Intent.ACTION_SEND的應用列表。 ResolveInfo 這個東東真不錯。
- * **/
- private List<ResolveInfo> getShareTargets(Activity activity){
- Intent intent=new Intent(Intent.ACTION_SEND,null);
- intent.addCategory(Intent.CATEGORY_DEFAULT);
- intent.setType("text/plain");
- PackageManager pm=activity.getPackageManager();
- return pm.queryIntentActivities(intent,PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
- }
- }
2.測試調用:
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- try
- {
- ShareSample sample =new ShareSample();
- sample.getShareList("分享標題", "要分享的內容哦。呵呵", this);
- }catch (Exception e) {
- e.printStackTrace();
- // TODO: handle exception
- }
- }
3.應用加入系統分享列表(這個在網上Copy的木有驗證過)
只需在AndroidManifest.xml中加入以下代碼:
- <activity android:name=".SharePage" android:label="分享到微博">
- <intent-filter>
- <action android:name="android.intent.action.SEND" />
- <category android:name="android.intent.category.DEFAULT" />
- <data android:mimeType="image/*" />
- </intent-filter>
- </activity>
4.小結:
不是太復雜的東西。但如果不知道 ResolveInfo 這個東東怎麼用就不太好搞了。(偶開始就不知道所以糾結了一下下。Android 小菜菜)
TableLayout經常用到的屬性有: android:collapseColumns:以第0行為序,隱藏指定的列: android:collapseColum
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
觀察者模式定義: Define a one-to-many dependency between objects so that when one object
學習目的: 1、掌握在Android中如何建立Button 2、掌握Button的常用屬性 3、掌握Button按鈕的點擊事件(監聽器) Button是各種UI中